diff --git a/JeeSpringCloud/jeespring-web/pom.xml b/JeeSpringCloud/jeespring-web/pom.xml new file mode 100644 index 0000000000000000000000000000000000000000..158cda2849095244823369a08989c39b9a28c4bd --- /dev/null +++ b/JeeSpringCloud/jeespring-web/pom.xml @@ -0,0 +1,109 @@ + + + 4.0.0 + com.jeespring + jeespring-web + jeespring-web + jeespring-web + 3.0.0 + war + + com.jeespring + jeespring + 1.0.0 + ../pom.xml + + + + + com.jeespring + jeespring-cms + 1.0.0 + + + com.jeespring + jeespring-company + 1.0.0 + + + com.jeespring + jeespring-framework + 1.0.0 + + + + + + com.ckfinder + apache-ant-zip + 2.3 + system + ${project.basedir}/src/main/webapp/WEB-INF/lib/apache-ant-zip-2.3.jar + + + com.ckfinder + ckfinder + 2.3 + system + ${project.basedir}/src/main/webapp/WEB-INF/lib/ckfinder-2.3.jar + + + com.ckfinder + ckfinderplugin-fileeditor + 2.3 + system + ${project.basedir}/src/main/webapp/WEB-INF/lib/ckfinderplugin-fileeditor-2.3.jar + + + com.ckfinder + ckfinderplugin-imageresize + 2.3 + system + ${project.basedir}/src/main/webapp/WEB-INF/lib/ckfinderplugin-imageresize-2.3.jar + + + com.swetake + qrcode + 1.5 + system + ${project.basedir}/src/main/webapp/WEB-INF/lib/QRCode-1.5.jar + + + bitwalker + UserAgentUtils + 1.13 + system + ${project.basedir}/src/main/webapp/WEB-INF/lib/UserAgentUtils-1.13.jar + + + + + + + org.springframework.boot + spring-boot-maven-plugin + + + slf4j-log4j12 + + + + + + \ No newline at end of file diff --git a/JeeSpringCloud/jeespring-web/src/main/java/com/JeeSpringDriver.java b/JeeSpringCloud/jeespring-web/src/main/java/com/JeeSpringDriver.java new file mode 100644 index 0000000000000000000000000000000000000000..c03f9c33c69e50e0b14316451ac2084699a82dab --- /dev/null +++ b/JeeSpringCloud/jeespring-web/src/main/java/com/JeeSpringDriver.java @@ -0,0 +1,77 @@ +/** + * Copyright © 2012-2016 JeeSpring All rights reserved. + */ +package com; + +import com.jeespring.common.websocket.WebSockertFilter; +import com.jeespring.modules.sys.service.SystemService; +import org.apache.catalina.connector.Connector; +import org.mybatis.spring.annotation.MapperScan; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.boot.autoconfigure.EnableAutoConfiguration; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.builder.SpringApplicationBuilder; +import org.springframework.boot.context.embedded.EmbeddedServletContainerFactory; +import org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory; +import org.springframework.boot.web.servlet.ServletComponentScan; +import org.springframework.cache.annotation.EnableCaching; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.ComponentScan; +import org.springframework.context.annotation.Configuration; +import org.springframework.scheduling.annotation.EnableScheduling; + +/** + * jeespring + * springboot的启动类 + * * * @author 黄炳桂 516821420@qq.com + * Created on 2017/1/8 16:20 + * + * @EnableAutoConfiguration(exclude = { + * org.springframework.boot.autoconfigure.security.SecurityAutoConfiguration.class, + * org.activiti.spring.boot.SecurityAutoConfiguration.class, + * }) + * 使用lazyInit缩短Spring Boot启动时间//, lazyInit = true + */ +@EnableCaching +@SpringBootApplication +@ServletComponentScan(basePackages = {"com.jeespring", "com.company","cn.xxx"}) +@ComponentScan(basePackages = {"com.jeespring", "com.company","cn.xxx"}) +@MapperScan(basePackages={"com.jeespring.modules.**.dao","com.company.project.modules.*.dao","cn.xxx.xxx.modules.*.dao"}) +@EnableScheduling +@ComponentScan +@EnableAutoConfiguration +@Configuration +public class JeeSpringDriver { + + @Value("${http.port}") + private Integer port; + + public static void main(String[] args) { + //Spring boot run + new SpringApplicationBuilder(JeeSpringDriver.class).web(true).run(args); + SystemService.printKeyLoadMessage(); + //IM WebSocker + WebSockertFilter w = new WebSockertFilter(); + w.startWebsocketChatServer(); + JeeSpringRunPrint.runPrint(); + } + + @Bean + public EmbeddedServletContainerFactory servletContainer() { + TomcatEmbeddedServletContainerFactory tomcat = new TomcatEmbeddedServletContainerFactory(); + // 添加http + tomcat.addAdditionalTomcatConnectors(createStandardConnector()); + return tomcat; + } + + /** + * 配置http + * @return Connector + */ + private Connector createStandardConnector() { + Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol"); + connector.setPort(port); + return connector; + } + +} diff --git a/JeeSpringCloud/jeespring-web/src/main/java/com/JeeSpringRunPrint.java b/JeeSpringCloud/jeespring-web/src/main/java/com/JeeSpringRunPrint.java new file mode 100644 index 0000000000000000000000000000000000000000..235db0660a21400996e846839304391bc5e3d630 --- /dev/null +++ b/JeeSpringCloud/jeespring-web/src/main/java/com/JeeSpringRunPrint.java @@ -0,0 +1,169 @@ +package com; + +public class JeeSpringRunPrint { + + public static void runPrint(){ + printGods(); + printAnimalsGods(); + printLadyGods(); + printPoetries(); + } + + private static void printGods() { + System.out.println( + "--------------- 佛祖保佑 神兽护体 女神助攻 流量冲天 ---------------\n" + + " _ooOoo_ \n" + + " o8888888o \n" + + " 88\" . \"88 \n" + + " (| ^_^ |) \n" + + " O\\ = /O \n" + + " ____/`---'\\____ \n" + + " .' \\\\| |// `. \n" + + " / \\||| : |||// \\ \n" + + " / _||||| -:- |||||- \\ \n" + + " | | \\\\\\ - /// | | \n" + + " | \\_| ''\\---/'' | | \n" + + " \\ .-\\__ `-` ___/-. / \n" + + " ___`. .' /--.--\\ `. . ___ \n" + + " .\"\" '< `.___\\_<|>_/___.' >'\"\". \n" + + " | | : `- \\`.;`\\ _ /`;.`/ - ` : | | \n" + + " \\ \\ `-. \\_ __\\ /__ _/ .-` / / \n" + + " ========`-.____`-.___\\_____/___.-`____.-'======== \n" + + " `=---=' \n" + + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ \n" + + " 佛祖保佑 永不宕机 永无BUG 流量冲天 \n" + + ""); + } + + private static void printAnimalsGods(){ + System.out.println( + "\n" + + " ┏┓ ┏┓+ + \n" + + " ┏┛┻━━━━━━━┛┻┓ + + \n" + + " ┃ ┃ \n" + + " ┃ ━ ┃ ++ + + + \n" + + " █████━█████ ┃+ \n" + + " ┃ ┃ + \n" + + " ┃ ┻ ┃ \n" + + " ┃ ┃ + + \n" + + " ┗━━┓ ┏━━━━┛ \n" + + " ┃ ┃ \n" + + " ┃ ┃ + + + + \n" + + " ┃ ┃ \n" + + " ┃ ┃ + 神兽护体,流量冲天 \n" + + " ┃ ┃ 永不宕机,代码无bug \n" + + " ┃ ┃ + \n" + + " ┃ ┗━━━━━┓ + + \n" + + " ┃ ┣┓ \n" + + " ┃ ┏┛ \n" + + " ┗┓┓┏━━━┳┓┏┛ + + + + \n" + + " ┃┫┫ ┃┫┫ \n" + + " ┗┻┛ ┗┻┛+ + + + \n" + + ""); + System.out.println( + "\n" + + " ┏┓ ┏┓ \n" + + " ┏┛┻━━━━━━┛┻┓ \n" + + " ┃ ┃ \n" + + " ┃ ━ ┃ \n" + + " ┃ ┳┛ ┗┳ ┃ \n" + + " ┃ ┃ \n" + + " ┃ ┻ ┃ \n" + + " ┃ ┃ \n" + + " ┗━┓ ┏━━━┛ \n" + + " ┃ ┃ 神兽护体 流量冲天 \n" + + " ┃ ┃ 永不宕机 代码无BUG! \n" + + " ┃ ┗━━━━━━━━━┓ \n" + + " ┃ ┣┓ \n" + + " ┃ ┏┛ \n" + + " ┗━┓ ┓ ┏━━━┳ ┓ ┏━┛ \n" + + " ┃ ┫ ┫ ┃ ┫ ┫ \n" + + " ┗━┻━┛ ┗━┻━┛ \n" + + ""); + } + + private static void printLadyGods(){ + System.out.println( + "\n" + + " .::::. \n" + + " .::::::::. \n" + + " ::::::::::: \n" + + " ..:::::::::::' \n" + + " '::::::::::::' \n" + + " .:::::::::: \n" + + " '::::::::::::::.. 女神助攻,流量冲天 \n" + + " ..::::::::::::. 永不宕机,代码无bug \n" + + " ``:::::::::::::::: \n" + + " ::::``:::::::::' .:::. \n" + + " ::::' ':::::' .::::::::. \n" + + " .::::' :::: .:::::::'::::. \n" + + " .:::' ::::: .:::::::::' ':::::. \n" + + " .::' :::::.:::::::::' ':::::. \n" + + " .::' ::::::::::::::' ``::::. \n" + + " ...::: ::::::::::::' ``::. \n" + + " ```` ':. ':::::::::' ::::.. \n" + + " '.:::::' ':'````.. \n" + + ""); + } + + private static void printPoetries() { + System.out.println( + "\n" + + " 唐伯虎:\n" + + " 桃花庵歌 \n" + + " 桃花坞里桃花庵,桃花庵下桃花仙; \n" + + " 桃花仙人种桃树,又摘桃花卖酒钱。 \n" + + " 酒醒只在花前坐,酒醉还来花下眠; \n" + + " 半醒半醉日复日,花落花开年复年。 \n" + + " 但愿老死花酒间,不愿鞠躬车马前; \n" + + " 车尘马足富者趣,酒盏花枝贫者缘。 \n" + + " 若将富贵比贫贱,一在平地一在天; \n" + + " 若将贫贱比车马,他得驱驰我得闲。 \n" + + " 别人笑我太疯癫,我笑他人看不穿; \n" + + " 不见五陵豪杰墓,无花无酒锄作田。 \n" + + ""); + System.out.println( + "\n" + + " 曹操:\n" + + " 短歌行 \n" + + " 对酒当歌,人生几何?譬如朝露,去日苦多。 \n" + + " 概当以慷,忧思难忘。何以解忧?唯有杜康。 \n" + + " 青青子衿,悠悠我心。但为君故,沈吟至今。 \n" + + " 呦呦鹿鸣,食野之苹。我有嘉宾,鼓瑟吹笙。 \n" + + " 明明如月,何时可掇?忧从中来,不可断绝。 \n" + + " 越陌度阡,枉用相存。契阔谈咽,心念旧恩。 \n" + + " 月明星稀,乌鹊南飞。绕树三匝,何枝可依。 \n" + + " 山不厌高,海不厌深,周公吐哺,天下归心。 \n" + + ""); + System.out.println( + "\n" + + " 关羽: \n" + + " 咏关公 \n" + + " 桃园结义薄云天,偃月青龙刀刃寒。 \n" + + " 一骑绝尘走千里,五关斩将震坤乾。 \n" + + " 忠心报国为梁栋,肝胆护兄铸铁肩。 \n" + + " 一去麦城无复返,英魂庙里化青烟。 \n" + + ""); + System.out.println( + "\n" + + " 程序员: \n" + + " 程序开发行 \n" + + " 写字楼里写字间,写字间里程序员; \n" + + " 程序人员做开发,又拿程序换活钱。 \n" + + " 上班只在网上坐,下班还来网下眠; \n" + + " 奔驰宝马贵者趣,公交自行程序员。 \n" + + " 不见满街漂亮妹,哪个归得程序员; \n" + + " 别人笑我忒疯癫,我笑他人看不穿。 \n" + + " 年复一年代码圈,精益求精产品圈; \n" + + " 至情之人同成长,缔造和谐至情间。 \n" + + " 千锤百炼飞冲天,辉煌有为戏人间; \n" + + " 谈笑风生社会圈,享天福天下归心。 \n" + + " JeeSpring官方QQ群:328910546 \n" + + " JeeSpring官方QQ群(VIP):558699173 \n" + + " JeeSpring官方架构群:464865153 \n" + + " JeeSpring是官方分布式微服务集群开源框架,使用前端HTML或后端模板引擎+mvvm+spring mvc+spring boot+spring cloud、mybatis、alibaba dubbo 分布式、\n" + + " 微服务、集群、工作流、代码生成(前端界面、底层代码、dubbo、微服务的生成)等核心技术。\n" + + " 开源中国 https://gitee.com/JeeHuangBingGui/jeeSpringCloud\n" + + ""); + } +} diff --git a/JeeSpringCloud/jeespring-web/src/main/java/com/JeeSpringServlet.java b/JeeSpringCloud/jeespring-web/src/main/java/com/JeeSpringServlet.java new file mode 100644 index 0000000000000000000000000000000000000000..32134f69acfbc5be8fd35117466424088b6a1bf7 --- /dev/null +++ b/JeeSpringCloud/jeespring-web/src/main/java/com/JeeSpringServlet.java @@ -0,0 +1,23 @@ +/** + * Copyright © 2012-2016 JeeSpring All rights reserved. + */ +package com; + +import org.springframework.boot.builder.SpringApplicationBuilder; +import org.springframework.boot.web.support.SpringBootServletInitializer; + +/** + * Web程序启动类 + * + * @author 黄炳桂 516821420@qq.com + * @date 2017-05-21 9:43 + */ +public class JeeSpringServlet extends SpringBootServletInitializer +{ + + @Override + protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) { + return builder.sources(JeeSpringDriver.class); + } + +} diff --git a/JeeSpringCloud/jeespring-web/src/main/java/com/company/project/modules/ylttrip/dao/TfTicketDao.java b/JeeSpringCloud/jeespring-web/src/main/java/com/company/project/modules/ylttrip/dao/TfTicketDao.java new file mode 100644 index 0000000000000000000000000000000000000000..99d1a7209d260d2032eb4195a8b28afe4cfd00b2 --- /dev/null +++ b/JeeSpringCloud/jeespring-web/src/main/java/com/company/project/modules/ylttrip/dao/TfTicketDao.java @@ -0,0 +1,18 @@ +/** + * * Copyright © 2015-2020 JeeSpringCloud All rights reserved.. + */ +package com.company.project.modules.ylttrip.dao; + +import com.jeespring.common.persistence.InterfaceBaseDao; +import org.apache.ibatis.annotations.Mapper; +import com.company.project.modules.ylttrip.entity.TfTicket; + +/** + * 订单DAO接口 + * @author JeeSpring + * @version 2018-11-07 + */ +@Mapper +public interface TfTicketDao extends InterfaceBaseDao { + +} \ No newline at end of file diff --git a/JeeSpringCloud/jeespring-web/src/main/java/com/company/project/modules/ylttrip/entity/TfTicket.java b/JeeSpringCloud/jeespring-web/src/main/java/com/company/project/modules/ylttrip/entity/TfTicket.java new file mode 100644 index 0000000000000000000000000000000000000000..e12ac199cf1d31dac384c1792ea1b6106ce046b8 --- /dev/null +++ b/JeeSpringCloud/jeespring-web/src/main/java/com/company/project/modules/ylttrip/entity/TfTicket.java @@ -0,0 +1,343 @@ +/** + * * Copyright © 2015-2020 JeeSpringCloud All rights reserved.. + */ +package com.company.project.modules.ylttrip.entity; + +import org.hibernate.validator.constraints.Length; +import com.jeespring.modules.sys.entity.User; +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; + +import com.alibaba.fastjson.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.jeespring.common.persistence.AbstractBaseEntity; +import com.jeespring.common.utils.excel.annotation.ExcelField; +import com.jeespring.modules.sys.utils.DictUtils; + +/** + * 订单Entity + * @author JeeSpring + * @version 2018-11-07 + */ +public class TfTicket extends AbstractBaseEntity { + + private static final long serialVersionUID = 1L; + private String ticketNo; // 订单编号 + private String goodsNo; // 商品编号 + private String goodsItemId; // 种类编号 + private String goodsItemName; // 种类名称 + private Long goodsNum; // 商品数量 + private Double sumGoodsNum; // sum商品数量 + private Double price; // 商品单价 + private Double sumPrice; // sum商品单价 + private Double salePrice; // 订单金额 + private Double sumSalePrice; // sum订单金额 + private com.jeespring.modules.sys.entity.User user; // 下单人 + private java.util.Date orderDate; // 下单时间 + private String state; // 订单状态 + private String stateLabel; // 订单状态Label + private String statePicture; // 订单状态Picture + private java.util.Date stateDate; // 状态时间 + private String custName; // 客户姓名 + private String linkPhone; // 联系电话 + private String address; // 收货地址 + private Long payType; // 付款方式 + private String payTypeLabel; // 付款方式Label + private String payTypePicture; // 付款方式Picture + private String logistId; // 物流编号 + private String logistComp; // 物流公司 + private String checkinCode; // 入园号 + private String reserveId; // 票务系统订单号 + private String remark; // 订单备注 + private java.util.Date beginOrderDate; // 开始 下单时间 + private java.util.Date endOrderDate; // 结束 下单时间 + private java.util.Date beginStateDate; // 开始 状态时间 + private java.util.Date endStateDate; // 结束 状态时间 + + public TfTicket() { + super(); + } + + public TfTicket(String id){ + super(id); + } + + @Length(min=1, max=25, message="订单编号长度必须介于 1 和 25 之间") + @ExcelField(title="订单编号", align=2, sort=1) + public String getTicketNo() { + return ticketNo; + } + + public void setTicketNo(String ticketNo) { + this.ticketNo = ticketNo; + } + + + @Length(min=0, max=25, message="商品编号长度必须介于 0 和 25 之间") + @ExcelField(title="商品编号", align=2, sort=2) + public String getGoodsNo() { + return goodsNo; + } + + public void setGoodsNo(String goodsNo) { + this.goodsNo = goodsNo; + } + + + @Length(min=0, max=255, message="种类编号长度必须介于 0 和 255 之间") + @ExcelField(title="种类编号", align=2, sort=3) + public String getGoodsItemId() { + return goodsItemId; + } + + public void setGoodsItemId(String goodsItemId) { + this.goodsItemId = goodsItemId; + } + + + @Length(min=0, max=255, message="种类名称长度必须介于 0 和 255 之间") + @ExcelField(title="种类名称", align=2, sort=4) + public String getGoodsItemName() { + return goodsItemName; + } + + public void setGoodsItemName(String goodsItemName) { + this.goodsItemName = goodsItemName; + } + + + @ExcelField(title="商品数量", align=2, sort=5) + public Long getGoodsNum() { + return goodsNum; + } + + public void setGoodsNum(Long goodsNum) { + this.goodsNum = goodsNum; + } + + public Double getSumGoodsNum() { + return sumGoodsNum; + } + + public void setSumGoodsNum(Double goodsNum) { + this.sumGoodsNum = goodsNum; + } + + @ExcelField(title="商品单价", align=2, sort=6) + public Double getPrice() { + return price; + } + + public void setPrice(Double price) { + this.price = price; + } + + public Double getSumPrice() { + return sumPrice; + } + + public void setSumPrice(Double price) { + this.sumPrice = price; + } + + @ExcelField(title="订单金额", align=2, sort=7) + public Double getSalePrice() { + return salePrice; + } + + public void setSalePrice(Double salePrice) { + this.salePrice = salePrice; + } + + public Double getSumSalePrice() { + return sumSalePrice; + } + + public void setSumSalePrice(Double salePrice) { + this.sumSalePrice = salePrice; + } + + @ExcelField(title="下单人", fieldType=User.class, value="user.name", align=2, sort=8) + public User getUser() { + return user; + } + + public void setUser(User user) { + this.user = user; + } + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @ExcelField(title="下单时间", align=2, sort=9) + public Date getOrderDate() { + return orderDate; + } + + public void setOrderDate(Date orderDate) { + this.orderDate = orderDate; + } + + + @Length(min=0, max=2, message="订单状态长度必须介于 0 和 2 之间") + @ExcelField(title="订单状态", dictType="STATE", align=2, sort=10) + public String getState() { + return state; + } + + public void setState(String state) { + this.state = state; + } + + + public String getStateLabel() { + return DictUtils.getDictLabel(state,"STATE",""); + } + public String getStatePicture() { + return DictUtils.getDictPicture(state,"STATE",""); + } + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @ExcelField(title="状态时间", align=2, sort=11) + public Date getStateDate() { + return stateDate; + } + + public void setStateDate(Date stateDate) { + this.stateDate = stateDate; + } + + + @Length(min=0, max=50, message="客户姓名长度必须介于 0 和 50 之间") + @ExcelField(title="客户姓名", align=2, sort=12) + public String getCustName() { + return custName; + } + + public void setCustName(String custName) { + this.custName = custName; + } + + + @Length(min=0, max=50, message="联系电话长度必须介于 0 和 50 之间") + @ExcelField(title="联系电话", align=2, sort=13) + public String getLinkPhone() { + return linkPhone; + } + + public void setLinkPhone(String linkPhone) { + this.linkPhone = linkPhone; + } + + + @Length(min=0, max=500, message="收货地址长度必须介于 0 和 500 之间") + @ExcelField(title="收货地址", align=2, sort=14) + public String getAddress() { + return address; + } + + public void setAddress(String address) { + this.address = address; + } + + + @ExcelField(title="付款方式", dictType="PAY_TYPE", align=2, sort=15) + public Long getPayType() { + return payType; + } + + public void setPayType(Long payType) { + this.payType = payType; + } + + + public String getPayTypeLabel() { + return DictUtils.getDictLabel(payType,"PAY_TYPE",""); + } + public String getPayTypePicture() { + return DictUtils.getDictPicture(payType,"PAY_TYPE",""); + } + @Length(min=0, max=25, message="物流编号长度必须介于 0 和 25 之间") + @ExcelField(title="物流编号", align=2, sort=16) + public String getLogistId() { + return logistId; + } + + public void setLogistId(String logistId) { + this.logistId = logistId; + } + + + @Length(min=0, max=200, message="物流公司长度必须介于 0 和 200 之间") + @ExcelField(title="物流公司", align=2, sort=17) + public String getLogistComp() { + return logistComp; + } + + public void setLogistComp(String logistComp) { + this.logistComp = logistComp; + } + + + @Length(min=0, max=255, message="入园号长度必须介于 0 和 255 之间") + @ExcelField(title="入园号", align=2, sort=18) + public String getCheckinCode() { + return checkinCode; + } + + public void setCheckinCode(String checkinCode) { + this.checkinCode = checkinCode; + } + + + @Length(min=0, max=30, message="票务系统订单号长度必须介于 0 和 30 之间") + @ExcelField(title="票务系统订单号", align=2, sort=20) + public String getReserveId() { + return reserveId; + } + + public void setReserveId(String reserveId) { + this.reserveId = reserveId; + } + + + @Length(min=0, max=500, message="订单备注长度必须介于 0 和 500 之间") + @ExcelField(title="订单备注", align=2, sort=21) + public String getRemark() { + return remark; + } + + public void setRemark(String remark) { + this.remark = remark; + } + + + public Date getBeginOrderDate() { + return beginOrderDate; + } + + public void setBeginOrderDate(Date beginOrderDate) { + this.beginOrderDate = beginOrderDate; + } + + public Date getEndOrderDate() { + return endOrderDate; + } + + public void setEndOrderDate(Date endOrderDate) { + this.endOrderDate = endOrderDate; + } + + public Date getBeginStateDate() { + return beginStateDate; + } + + public void setBeginStateDate(Date beginStateDate) { + this.beginStateDate = beginStateDate; + } + + public Date getEndStateDate() { + return endStateDate; + } + + public void setEndStateDate(Date endStateDate) { + this.endStateDate = endStateDate; + } + +} \ No newline at end of file diff --git a/JeeSpringCloud/jeespring-web/src/main/java/com/company/project/modules/ylttrip/rest/TfTicketRestController.java b/JeeSpringCloud/jeespring-web/src/main/java/com/company/project/modules/ylttrip/rest/TfTicketRestController.java new file mode 100644 index 0000000000000000000000000000000000000000..b4e6b114113e9956c9d2e50f4aec49b554ee8014 --- /dev/null +++ b/JeeSpringCloud/jeespring-web/src/main/java/com/company/project/modules/ylttrip/rest/TfTicketRestController.java @@ -0,0 +1,303 @@ +/** + * * Copyright © 2015-2020 JeeSpringCloud All rights reserved.. + */ +package com.company.project.modules.ylttrip.rest; + +import java.util.List; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.apache.shiro.authz.annotation.Logical; +import org.apache.shiro.authz.annotation.RequiresPermissions; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.web.bind.annotation.ModelAttribute; +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.multipart.MultipartFile; +import org.springframework.web.servlet.mvc.support.RedirectAttributes; + +import com.google.common.collect.Lists; +import com.jeespring.common.utils.DateUtils; +import com.jeespring.common.config.Global; +import com.jeespring.common.persistence.Page; +import com.jeespring.common.web.AbstractBaseController; +import com.jeespring.common.utils.StringUtils; +import com.jeespring.common.utils.excel.ExportExcel; +import com.jeespring.common.utils.excel.ImportExcel; +import com.company.project.modules.ylttrip.entity.TfTicket; +import com.company.project.modules.ylttrip.service.ITfTicketService; +import org.springframework.web.bind.annotation.RestController; +import com.jeespring.common.web.Result; +import com.jeespring.common.web.ResultFactory; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiImplicitParams; +import io.swagger.annotations.ApiOperation; +import org.springframework.web.bind.annotation.*; + +/** + * 订单Controller + * @author JeeSpring + * @version 2018-11-07 + */ +@RestController +@RequestMapping(value = "/rest/ylttrip/tfTicket") +@Api(value="订单接口", description="订单接口") +public class TfTicketRestController extends AbstractBaseController { + + //调用dubbo服务器是,要去Reference注解,注解Autowired + //@Reference(version = "1.0.0") + @Autowired + private ITfTicketService tfTicketService; + + /** + * 订单信息 + */ + @RequestMapping(value = {"get"},method ={RequestMethod.POST,RequestMethod.GET}) + @ApiOperation(value="订单信息(Content-Type为text/html)", notes="订单信息(Content-Type为text/html)") + @ApiImplicitParam(name = "id", value = "订单id", required = false, dataType = "String",paramType="query") + public Result getRequestParam(@RequestParam(required=false) String id) { + return get(id); + } + + @RequestMapping(value = {"get/json"},method ={RequestMethod.POST}) + @ApiOperation(value="订单信息(Content-Type为application/json)", notes="订单信息(Content-Type为application/json)") + @ApiImplicitParam(name = "id", value = "订单id", required = false, dataType = "String",paramType="body") + public Result getRequestBody(@RequestBody(required=false) String id) { + return get(id); + } + + private Result get(String id) { + TfTicket entity = null; + if (StringUtils.isNotBlank(id)){ + entity = tfTicketService.getCache(id); + //entity = tfTicketService.get(id); + } + if (entity == null){ + entity = new TfTicket(); + } + Result result = ResultFactory.getSuccessResult(); + result.setResultObject(entity); + return result; + } + + /** + * 订单列表(不包含页信息) + */ + //RequiresPermissions("ylttrip:tfTicket:findList") + @RequestMapping(value = {"findList"},method ={RequestMethod.POST,RequestMethod.GET}) + @ApiOperation(value="订单列表(不包含页信息)(Content-Type为text/html)", notes="订单列表(不包含页信息)(Content-Type为text/html)") + @ApiImplicitParam(name = "tfTicket", value = "订单", dataType = "TfTicket",paramType="query") + public Result findListRequestParam(TfTicket tfTicket, HttpServletRequest request, HttpServletResponse response, Model model) { + return findList( tfTicket,model); + } + + @RequestMapping(value = {"findList/json"},method ={RequestMethod.POST}) + @ApiOperation(value="订单列表(不包含页信息)(Content-Type为application/json)", notes="订单列表(不包含页信息)(Content-Type为application/json)") + @ApiImplicitParam(name = "tfTicket", value = "订单", dataType = "TfTicket",paramType="body") + public Result findListRequestBody(@RequestBody TfTicket tfTicket, Model model) { + return findList( tfTicket,model); + } + + private Result findList(TfTicket tfTicket, Model model) { + List list = tfTicketService.findListCache(tfTicket); + //List list = tfTicketService.findList(tfTicket); + Result result = ResultFactory.getSuccessResult(); + result.setResultObject(list); + return result; + } + + /** + * 订单列表(包含页信息) + */ + //RequiresPermissions("ylttrip:tfTicket:list") + @RequestMapping(value = {"list"},method ={RequestMethod.POST,RequestMethod.GET}) + @ApiOperation(value="订单列表(包含页信息)(Content-Type为text/html)", notes="订单列表(包含页信息)(Content-Type为text/html)") + @ApiImplicitParam(name = "tfTicket", value = "订单", dataType = "TfTicket",paramType="query") + public Result listRequestParam(TfTicket tfTicket, HttpServletRequest request, HttpServletResponse response, Model model) { + return list(tfTicket,model); + } + + @RequestMapping(value = {"list/json"},method ={RequestMethod.POST}) + @ApiOperation(value="订单列表(包含页信息)(Content-Type为application/json)", notes="订单列表(包含页信息)(Content-Type为application/json)") + @ApiImplicitParam(name = "tfTicket", value = "订单", dataType = "TfTicket",paramType="body") + public Result listRequestBody(@RequestBody TfTicket tfTicket, Model model) { + return list(tfTicket,model); + } + + private Result list(TfTicket tfTicket, Model model) { + Page page = tfTicketService.findPageCache(new Page(tfTicket.getPageNo(),tfTicket.getPageSize(),tfTicket.getOrderBy()), tfTicket); + //Page page = tfTicketService.findPage(new Page(tfTicket.getPageNo(),tfTicket.getPageSize(),tfTicket.getOrderBy()), tfTicket); + Result result = ResultFactory.getSuccessResult(); + result.setResultObject(page); + return result; + } + + /** + * 订单获取列表第一条记录 + */ + //RequiresPermissions("ylttrip:tfTicket:listFrist") + @RequestMapping(value = {"listFrist"},method ={RequestMethod.POST,RequestMethod.GET}) + @ApiOperation(value="订单获取列表第一条记录(Content-Type为text/html)", notes="订单获取列表第一条记录(Content-Type为text/html)") + @ApiImplicitParam(name = "tfTicket", value = "订单", dataType = "TfTicket",paramType="query") + public Result listFristRequestParam(TfTicket tfTicket, HttpServletRequest request, HttpServletResponse response, Model model) { + return listFrist(tfTicket,model); + } + + @RequestMapping(value = {"listFrist/json"},method ={RequestMethod.POST}) + @ApiOperation(value="订单获取列表第一条记录(Content-Type为application/json)", notes="订单获取列表第一条记录(Content-Type为application/json)") + @ApiImplicitParam(name = "tfTicket", value = "订单", dataType = "TfTicket",paramType="body") + public Result listFristRequestBody(@RequestBody TfTicket tfTicket, Model model) { + return listFrist(tfTicket,model); + } + + private Result listFrist(TfTicket tfTicket, Model model) { + Page page = tfTicketService.findPageCache(new Page(tfTicket.getPageNo(),tfTicket.getPageSize(),tfTicket.getOrderBy()), tfTicket); + //Page page = tfTicketService.findPage(new Page(tfTicket.getPageNo(),tfTicket.getPageSize(),tfTicket.getOrderBy()), tfTicket); + Result result = ResultFactory.getSuccessResult(); + if(page.getList().size()>0){ + result.setResultObject(page.getList().get(0)); + }else{ + result=ResultFactory.getErrorResult("没有记录!"); + } + return result; + } + + /** + * 保存订单 + */ + //RequiresPermissions(value={"ylttrip:tfTicket:add","ylttrip:tfTicket:edit"},logical=Logical.OR) + @RequestMapping(value = "save",method ={RequestMethod.POST,RequestMethod.GET}) + @ApiOperation(value="保存订单(Content-Type为text/html)", notes="保存订单(Content-Type为text/html)") + @ApiImplicitParam(name = "tfTicket", value = "订单", dataType = "TfTicket",paramType="query") + public Result saveRequestParam(TfTicket tfTicket, Model model, RedirectAttributes redirectAttributes) { + return save(tfTicket,model,redirectAttributes); + } + + @RequestMapping(value = "save/json",method ={RequestMethod.POST}) + @ApiOperation(value="保存订单(Content-Type为application/json)", notes="保存订单(Content-Type为application/json)") + @ApiImplicitParam(name = "tfTicket", value = "订单", dataType = "TfTicket",paramType="body") + public Result saveRequestBody(@RequestBody TfTicket tfTicket, Model model, RedirectAttributes redirectAttributes) { + return save(tfTicket,model,redirectAttributes); + } + + private Result save(TfTicket tfTicket, Model model, RedirectAttributes redirectAttributes) { + if (!beanValidator(model, tfTicket)){ + Result result = ResultFactory.getErrorResult("数据验证失败"); + } + tfTicketService.save(tfTicket); + Result result = ResultFactory.getSuccessResult("保存订单成功"); + return result; + } + + /** + * 删除订单 + */ + //RequiresPermissions("ylttrip:tfTicket:del") + @RequestMapping(value = "delete",method ={RequestMethod.POST,RequestMethod.GET}) + @ApiOperation(value="删除订单(Content-Type为text/html)", notes="删除订单(Content-Type为text/html)") + @ApiImplicitParam(name = "tfTicket", value = "订单", dataType = "TfTicket",paramType="query") + public Result deleteRequestParam(TfTicket tfTicket, RedirectAttributes redirectAttributes) { + return delete(tfTicket,redirectAttributes); + } + + @RequestMapping(value = "delete/json",method ={RequestMethod.POST}) + @ApiOperation(value="删除订单(Content-Type为application/json)", notes="删除订单(Content-Type为application/json)") + @ApiImplicitParam(name = "tfTicket", value = "订单", dataType = "TfTicket",paramType="body") + public Result deleteRequestBody(@RequestBody TfTicket tfTicket, RedirectAttributes redirectAttributes) { + return delete(tfTicket,redirectAttributes); + } + + private Result delete(TfTicket tfTicket, RedirectAttributes redirectAttributes) { + tfTicketService.delete(tfTicket); + Result result = ResultFactory.getSuccessResult("删除订单成功"); + return result; + } + + /** + * 删除订单(逻辑删除,更新del_flag字段为1,在表包含字段del_flag时,可以调用此方法,将数据隐藏) + */ + @RequestMapping(value = "deleteByLogic",method ={RequestMethod.POST,RequestMethod.GET}) + @ApiOperation(value="逻辑删除订单(Content-Type为text/html)", notes="逻辑删除订单(Content-Type为text/html)") + @ApiImplicitParam(name = "tfTicket", value = "订单", dataType = "TfTicket",paramType="query") + public Result deleteByLogicRequestParam(TfTicket tfTicket, RedirectAttributes redirectAttributes) { + return deleteByLogic(tfTicket,redirectAttributes); + } + + /** + * 删除订单(逻辑删除,更新del_flag字段为1,在表包含字段del_flag时,可以调用此方法,将数据隐藏) + */ + @RequestMapping(value = "deleteByLogic/json",method ={RequestMethod.POST}) + @ApiOperation(value="逻辑删除订单(Content-Type为application/json)", notes="逻辑删除订单(Content-Type为application/json)") + @ApiImplicitParam(name = "tfTicket", value = "订单", dataType = "TfTicket",paramType="body") + public Result deleteByLogicRequestBody(@RequestBody TfTicket tfTicket, RedirectAttributes redirectAttributes) { + return deleteByLogic(tfTicket,redirectAttributes); + } + + private Result deleteByLogic(TfTicket tfTicket, RedirectAttributes redirectAttributes) { + tfTicketService.deleteByLogic(tfTicket); + Result result = ResultFactory.getSuccessResult("删除订单成功"); + return result; + } + + /** + * 批量删除订单 + */ + //RequiresPermissions("ylttrip:tfTicket:del") + @RequestMapping(value = "deleteAll",method ={RequestMethod.POST,RequestMethod.GET}) + @ApiOperation(value="批量删除订单(Content-Type为text/html)", notes="批量删除订单(Content-Type为text/html)") + @ApiImplicitParam(name = "ids", value = "订单ids,用,隔开", required = false, dataType = "String",paramType="query") + public Result deleteAllRequestParam(String ids, RedirectAttributes redirectAttributes) { + return deleteAll(ids,redirectAttributes); + } + + @RequestMapping(value = "deleteAll/json",method ={RequestMethod.POST}) + @ApiOperation(value="批量删除订单(Content-Type为application/json)", notes="批量删除订单(Content-Type为application/json)") + @ApiImplicitParam(name = "ids", value = "订单ids,用,隔开", required = false, dataType = "String",paramType="body") + public Result deleteAllRequestBody(@RequestBody String ids, RedirectAttributes redirectAttributes) { + return deleteAll(ids,redirectAttributes); + } + + private Result deleteAll(String ids, RedirectAttributes redirectAttributes) { + String idArray[] =ids.split(","); + for(String id : idArray){ + tfTicketService.delete(tfTicketService.get(id)); + } + Result result = ResultFactory.getSuccessResult("删除订单成功"); + return result; + } + + /** + * 批量删除订单(逻辑删除,更新del_flag字段为1,在表包含字段del_flag时,可以调用此方法,将数据隐藏) + */ + @RequestMapping(value = "deleteAllByLogic",method ={RequestMethod.POST,RequestMethod.GET}) + @ApiOperation(value="逻辑批量删除订单(Content-Type为text/html)", notes="逻辑批量删除订单(Content-Type为text/html)") + @ApiImplicitParam(name = "ids", value = "订单ids,用,隔开", required = false, dataType = "String",paramType="query") + public Result deleteAllByLogicRequestParam(String ids, RedirectAttributes redirectAttributes) { + return deleteAllByLogic(ids,redirectAttributes); + } + + /** + * 批量删除订单(逻辑删除,更新del_flag字段为1,在表包含字段del_flag时,可以调用此方法,将数据隐藏) + */ + @RequestMapping(value = "deleteAllByLogic/json",method ={RequestMethod.POST}) + @ApiOperation(value="逻辑批量删除订单(Content-Type为application/json)", notes="逻辑批量删除订单(Content-Type为application/json)") + @ApiImplicitParam(name = "ids", value = "订单ids,用,隔开", required = false, dataType = "String",paramType="body") + public Result deleteAllByLogicRequestBody(@RequestBody String ids, RedirectAttributes redirectAttributes) { + return deleteAllByLogic(ids,redirectAttributes); + } + + private Result deleteAllByLogic(String ids, RedirectAttributes redirectAttributes) { + String idArray[] =ids.split(","); + for(String id : idArray){ + tfTicketService.deleteByLogic(tfTicketService.get(id)); + } + Result result = ResultFactory.getSuccessResult("删除订单成功"); + return result; + } + +} \ No newline at end of file diff --git a/JeeSpringCloud/jeespring-web/src/main/java/com/company/project/modules/ylttrip/service/ITfTicketService.java b/JeeSpringCloud/jeespring-web/src/main/java/com/company/project/modules/ylttrip/service/ITfTicketService.java new file mode 100644 index 0000000000000000000000000000000000000000..a6e584dd9e6afa9a371154324cfc458f2e7e0e89 --- /dev/null +++ b/JeeSpringCloud/jeespring-web/src/main/java/com/company/project/modules/ylttrip/service/ITfTicketService.java @@ -0,0 +1,16 @@ +/** + * * Copyright © 2015-2020 JeeSpringCloud All rights reserved.. + */ +package com.company.project.modules.ylttrip.service; + +import com.jeespring.common.persistence.InterfaceBaseService; +import com.jeespring.modules.server.entity.SysServer; +import com.company.project.modules.ylttrip.entity.TfTicket; + +/** + * I订单Service + * @author JeeSpring + * @version 2018-11-07 + */ +public interface ITfTicketService extends InterfaceBaseService { +} \ No newline at end of file diff --git a/JeeSpringCloud/jeespring-web/src/main/java/com/company/project/modules/ylttrip/service/TfTicketService.java b/JeeSpringCloud/jeespring-web/src/main/java/com/company/project/modules/ylttrip/service/TfTicketService.java new file mode 100644 index 0000000000000000000000000000000000000000..cbdc38b2c175eebefbe493f8cad64d303eb91eba --- /dev/null +++ b/JeeSpringCloud/jeespring-web/src/main/java/com/company/project/modules/ylttrip/service/TfTicketService.java @@ -0,0 +1,166 @@ +/** + * * Copyright © 2015-2020 JeeSpringCloud All rights reserved.. + */ +package com.company.project.modules.ylttrip.service; + +import java.util.List; + +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.beans.factory.annotation.Autowired; + +import com.jeespring.common.persistence.Page; +import com.jeespring.common.service.AbstractBaseService; +import com.company.project.modules.ylttrip.entity.TfTicket; +import com.company.project.modules.ylttrip.dao.TfTicketDao; +import com.company.project.modules.ylttrip.service.ITfTicketService; +import com.alibaba.fastjson.JSON; +import com.jeespring.common.redis.RedisUtils; +import com.jeespring.common.security.MD5Tools; +//import com.alibaba.dubbo.config.annotation.Service; +import com.jeespring.common.config.Global; + +/** + * 订单Service + * @author JeeSpring + * @version 2018-11-07 + */ + //启用dubbo服务器时,要去掉下面注解 + //com.alibaba.dubbo.config.annotation.Service(interfaceClass = ISysServerService.class,version = "1.0.0", timeout = 60000) +@org.springframework.stereotype.Service +@Transactional(readOnly = true) +public class TfTicketService extends AbstractBaseService implements ITfTicketService{ + + /** + * redis caches + */ + @Autowired + private RedisUtils redisUtils; + + public TfTicket get(String id) { + //获取数据库数据 + TfTicket tfTicket=super.get(id); + return tfTicket; + } + + public TfTicket getCache(String id) { + //获取缓存数据 + TfTicket tfTicket=(TfTicket)redisUtils.get(RedisUtils.getIdKey(TfTicketService.class.getName(),id)); + if( tfTicket!=null) return tfTicket; + //获取数据库数据 + tfTicket=super.get(id); + //设置缓存数据 + redisUtils.set(RedisUtils.getIdKey(TfTicketService.class.getName(),id),tfTicket); + return tfTicket; + } + + public List total(TfTicket tfTicket) { + //获取数据库数据 + List tfTicketList=super.total(tfTicket); + return tfTicketList; + } + + public List totalCache(TfTicket tfTicket) { + //获取缓存数据 + String totalKey = RedisUtils.getTotalKey(TfTicketService.class.getName(),JSON.toJSONString(tfTicket)); + List tfTicketList=(List)redisUtils.get(totalKey); + if(tfTicketList!=null) return tfTicketList; + //获取数据库数据 + tfTicketList=super.total(tfTicket); + //设置缓存数据 + redisUtils.set(totalKey,tfTicketList); + return tfTicketList; + } + + public List findList(TfTicket tfTicket) { + //获取数据库数据 + List tfTicketList=super.findList(tfTicket); + //设置缓存数据 + return tfTicketList; + } + + public List findListCache(TfTicket tfTicket) { + //获取缓存数据 + String findListKey = RedisUtils.getFindListKey(TfTicketService.class.getName(),JSON.toJSONString(tfTicket)); + List tfTicketList=(List)redisUtils.get(findListKey); + if(tfTicketList!=null) return tfTicketList; + //获取数据库数据 + tfTicketList=super.findList(tfTicket); + //设置缓存数据 + redisUtils.set(findListKey,tfTicketList); + return tfTicketList; + } + + public TfTicket findListFirst(TfTicket tfTicket) {; + //获取数据库数据 + List tfTicketList=super.findList(tfTicket); + if(tfTicketList.size()>0) tfTicket=tfTicketList.get(0); + return tfTicket; + } + + public TfTicket findListFirstCache(TfTicket tfTicket) { + //获取缓存数据 + String findListFirstKey = RedisUtils.getFindListFirstKey(TfTicketService.class.getName(),JSON.toJSONString(tfTicket)); + TfTicket tfTicketRedis=(TfTicket)redisUtils.get(findListFirstKey); + if(tfTicketRedis!=null) return tfTicketRedis; + //获取数据库数据 + List tfTicketList=super.findList(tfTicket); + if(tfTicketList.size()>0) tfTicket=tfTicketList.get(0); + else tfTicket=new TfTicket(); + //设置缓存数据 + redisUtils.set(findListFirstKey,tfTicket); + return tfTicket; + } + + public Page findPage(Page page, TfTicket tfTicket) { + //获取数据库数据 + Page pageReuslt=super.findPage(page, tfTicket); + return pageReuslt; + } + + public Page findPageCache(Page page, TfTicket tfTicket) { + //获取缓存数据 + String findPageKey = RedisUtils.getFindPageKey(TfTicketService.class.getName(),JSON.toJSONString(page)+JSON.toJSONString(tfTicket)); + Page pageReuslt=(Page)redisUtils.get(findPageKey); + if(pageReuslt!=null) return pageReuslt; + //获取数据库数据 + pageReuslt=super.findPage(page, tfTicket); + //设置缓存数据 + redisUtils.set(findPageKey,pageReuslt); + return pageReuslt; + } + + @Transactional(readOnly = false) + public void save(TfTicket tfTicket) { + //保存数据库记录 + super.save(tfTicket); + //设置清除缓存数据 + redisUtils.remove(RedisUtils.getIdKey(TfTicketService.class.getName(),tfTicket.getId())); + //清除列表和页面缓存数据 + redisUtils.removePattern(RedisUtils.getFindListKeyPattern(TfTicketService.class.getName())); + redisUtils.removePattern(RedisUtils.getFinPageKeyPattern(TfTicketService.class.getName())); + } + + @Transactional(readOnly = false) + public void delete(TfTicket tfTicket) { + //清除记录缓存数据 + redisUtils.remove(RedisUtils.getIdKey(TfTicketService.class.getName(),tfTicket.getId())); + //删除数据库记录 + super.delete(tfTicket); + //清除列表和页面缓存数据 + redisUtils.removePattern(RedisUtils.getFindListKeyPattern(TfTicketService.class.getName())); + redisUtils.removePattern(RedisUtils.getFinPageKeyPattern(TfTicketService.class.getName())); + } + + @Transactional(readOnly = false) + public void deleteByLogic(TfTicket tfTicket) { + //清除记录缓存数据 + redisUtils.remove(RedisUtils.getIdKey(TfTicketService.class.getName(),tfTicket.getId())); + //逻辑删除数据库记录 + super.deleteByLogic(tfTicket); + //清除列表和页面缓存数据 + redisUtils.removePattern(RedisUtils.getFindListKeyPattern(TfTicketService.class.getName())); + redisUtils.removePattern(RedisUtils.getFinPageKeyPattern(TfTicketService.class.getName())); + } + +} \ No newline at end of file diff --git a/JeeSpringCloud/jeespring-web/src/main/java/com/company/project/modules/ylttrip/web/TfTicketController.java b/JeeSpringCloud/jeespring-web/src/main/java/com/company/project/modules/ylttrip/web/TfTicketController.java new file mode 100644 index 0000000000000000000000000000000000000000..8e3e78d4011083bfffe372fdbcbedd1603fc5af4 --- /dev/null +++ b/JeeSpringCloud/jeespring-web/src/main/java/com/company/project/modules/ylttrip/web/TfTicketController.java @@ -0,0 +1,326 @@ +/** + * * Copyright © 2015-2020 JeeSpringCloud All rights reserved.. + */ +package com.company.project.modules.ylttrip.web; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.apache.shiro.authz.annotation.Logical; +import org.apache.shiro.authz.annotation.RequiresPermissions; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.web.bind.annotation.ModelAttribute; +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.multipart.MultipartFile; +import org.springframework.web.servlet.mvc.support.RedirectAttributes; + +import com.google.common.collect.Lists; +import com.jeespring.common.utils.DateUtils; +import com.jeespring.common.config.Global; +import com.jeespring.common.persistence.Page; +import com.jeespring.common.web.AbstractBaseController; +import com.jeespring.common.utils.StringUtils; +import com.jeespring.common.utils.excel.ExportExcel; +import com.jeespring.common.utils.excel.ImportExcel; +import com.company.project.modules.ylttrip.entity.TfTicket; +import com.company.project.modules.ylttrip.service.TfTicketService; +import com.company.project.modules.ylttrip.service.ITfTicketService; +import com.alibaba.dubbo.config.annotation.Reference; + +/** + * 订单Controller + * @author JeeSpring + * @version 2018-11-07 + */ +@Controller +@RequestMapping(value = "${adminPath}/ylttrip/tfTicket") +public class TfTicketController extends AbstractBaseController { + + //调用dubbo服务器是,要去Reference注解,注解Autowired + //@Reference(version = "1.0.0") + @Autowired + private ITfTicketService tfTicketService; + + @ModelAttribute + public TfTicket get(@RequestParam(required=false) String id) { + TfTicket entity = null; + if (StringUtils.isNotBlank(id)){ + entity = tfTicketService.getCache(id); + //entity = tfTicketService.get(id); + } + if (entity == null){ + entity = new TfTicket(); + } + return entity; + } + + /** + * 订单统计页面 + */ + @RequiresPermissions("ylttrip:tfTicket:total") + @RequestMapping(value = {"total"}) + public String totalView(TfTicket tfTicket, HttpServletRequest request, HttpServletResponse response, Model model) { + total(tfTicket,request,response,model); + return "modules/ylttrip/tfTicketTotal"; + } + private void total(TfTicket tfTicket, HttpServletRequest request, HttpServletResponse response, Model model) { + if(StringUtils.isEmpty(tfTicket.getTotalType())){ + tfTicket.setTotalType("%Y-%m-%d"); + } + //X轴的数据 + List xAxisData= new ArrayList(); + //Y轴的数据 + Map> yAxisData = new HashMap>(); + List countList = new ArrayList(); + List sumList = new ArrayList(); + List sumGoodsNumList = new ArrayList(); + List sumPriceList = new ArrayList(); + List sumSalePriceList = new ArrayList(); + if(tfTicket.getOrderBy()==""){ + tfTicket.setOrderBy("totalDate"); + } + List list = tfTicketService.totalCache(tfTicket); + //List list = tfTicketService.total(tfTicket); + model.addAttribute("list", list); + for(TfTicket tfTicketItem:list){ + //x轴数据 + xAxisData.add( tfTicketItem.getTotalDate()); + countList.add(Double.valueOf(tfTicketItem.getTotalCount())); + if(tfTicketItem.getSumGoodsNum()!=null) + sumGoodsNumList.add(Double.valueOf(tfTicketItem.getSumGoodsNum())); + else + tfTicketItem.setSumGoodsNum(0D); + if(tfTicketItem.getSumPrice()!=null) + sumPriceList.add(Double.valueOf(tfTicketItem.getSumPrice())); + else + tfTicketItem.setSumPrice(0D); + if(tfTicketItem.getSumSalePrice()!=null) + sumSalePriceList.add(Double.valueOf(tfTicketItem.getSumSalePrice())); + else + tfTicketItem.setSumSalePrice(0D); + } + yAxisData.put("数量", countList); + yAxisData.put("商品数量", sumGoodsNumList); + yAxisData.put("商品单价", sumPriceList); + yAxisData.put("订单金额", sumSalePriceList); + request.setAttribute("xAxisData", xAxisData); + request.setAttribute("yAxisData", yAxisData); + model.addAttribute("sumTotalCount", list.stream().mapToInt(TfTicket::getTotalCount).sum()); + model.addAttribute("sumGoodsNum", list.stream().mapToDouble(TfTicket::getSumGoodsNum).sum()); + model.addAttribute("sumPrice", list.stream().mapToDouble(TfTicket::getSumPrice).sum()); + model.addAttribute("sumSalePrice", list.stream().mapToDouble(TfTicket::getSumSalePrice).sum()); + + //饼图数据 + Map orientData= new HashMap(); + Map orientDataSumGoodsNum= new HashMap(); + Map orientDataSumPrice= new HashMap(); + Map orientDataSumSalePrice= new HashMap(); + for(TfTicket tfTicketItem:list){ + orientData.put(tfTicketItem.getTotalDate(), tfTicketItem.getTotalCount()); + orientDataSumGoodsNum.put(tfTicketItem.getTotalDate(), Double.valueOf(tfTicketItem.getSumGoodsNum())); + orientDataSumPrice.put(tfTicketItem.getTotalDate(), Double.valueOf(tfTicketItem.getSumPrice())); + orientDataSumSalePrice.put(tfTicketItem.getTotalDate(), Double.valueOf(tfTicketItem.getSumSalePrice())); + } + model.addAttribute("orientData", orientData); + model.addAttribute("orientDataSumGoodsNum", orientDataSumGoodsNum); + model.addAttribute("orientDataSumPrice", orientDataSumPrice); + model.addAttribute("orientDataSumSalePrice", orientDataSumSalePrice); + } + @RequiresPermissions("ylttrip:tfTicket:total") + @RequestMapping(value = {"totalMap"}) + public String totalMap(TfTicket tfTicket, HttpServletRequest request, HttpServletResponse response, Model model) { + if(StringUtils.isEmpty(tfTicket.getTotalType())){ + tfTicket.setTotalType("%Y-%m-%d"); + } + List list = tfTicketService.totalCache(tfTicket); + //List list = tfTicketService.total(tfTicket); + model.addAttribute("sumTotalCount", list.stream().mapToInt(TfTicket::getTotalCount).sum()); + model.addAttribute("sumGoodsNum", list.stream().mapToDouble(TfTicket::getSumGoodsNum).sum()); + model.addAttribute("sumPrice", list.stream().mapToDouble(TfTicket::getSumPrice).sum()); + model.addAttribute("sumSalePrice", list.stream().mapToDouble(TfTicket::getSumSalePrice).sum()); + model.addAttribute("list", list); + return "modules/ylttrip/tfTicketTotalMap"; + } + + /** + * 订单列表页面 + */ + @RequiresPermissions("ylttrip:tfTicket:list") + @RequestMapping(value = {"list", ""}) + public String list(TfTicket tfTicket, HttpServletRequest request, HttpServletResponse response, Model model) { + Page page = tfTicketService.findPageCache(new Page(request, response), tfTicket); + //Page page = tfTicketService.findPage(new Page(request, response), tfTicket); + model.addAttribute("page", page); + tfTicket.setOrderBy("totalDate"); + total(tfTicket,request,response,model); + return "modules/ylttrip/tfTicketList"; + } + + /** + * 订单列表页面 + */ + @RequiresPermissions("ylttrip:tfTicket:list") + @RequestMapping(value = {"listVue"}) + public String listVue(TfTicket tfTicket, HttpServletRequest request, HttpServletResponse response, Model model) { + Page page = tfTicketService.findPageCache(new Page(request, response), tfTicket); + //Page page = tfTicketService.findPage(new Page(request, response), tfTicket); + model.addAttribute("page", page); + return "modules/ylttrip/tfTicketListVue"; + } + + /** + * 订单列表页面 + */ + //RequiresPermissions("ylttrip:tfTicket:select") + @RequestMapping(value = {"select"}) + public String select(TfTicket tfTicket, HttpServletRequest request, HttpServletResponse response, Model model) { + Page page = tfTicketService.findPageCache(new Page(request, response), tfTicket); + //Page page = tfTicketService.findPage(new Page(request, response), tfTicket); + model.addAttribute("page", page); + return "modules/ylttrip/tfTicketSelect"; + } + + /** + * 查看,增加,编辑订单表单页面 + */ + @RequiresPermissions(value={"ylttrip:tfTicket:view","ylttrip:tfTicket:add","ylttrip:tfTicket:edit"},logical=Logical.OR) + @RequestMapping(value = "form") + public String form(TfTicket tfTicket, Model model, HttpServletRequest request, HttpServletResponse response) { + model.addAttribute("action", request.getParameter("action")); + model.addAttribute("tfTicket", tfTicket); + if(request.getParameter("ViewFormType")!=null && request.getParameter("ViewFormType").equals("FormTwo")) + return "modules/ylttrip/tfTicketFormTwo"; + return "modules/ylttrip/tfTicketForm"; + } + + /** + * 保存订单 + */ + @RequiresPermissions(value={"ylttrip:tfTicket:add","ylttrip:tfTicket:edit"},logical=Logical.OR) + @RequestMapping(value = "save") + public String save(TfTicket tfTicket, Model model, RedirectAttributes redirectAttributes, HttpServletRequest request, HttpServletResponse response) { + if (!beanValidator(model, tfTicket)){ + return form(tfTicket, model,request,response); + } + tfTicketService.save(tfTicket); + addMessage(redirectAttributes, "保存订单成功"); + return "redirect:"+Global.getAdminPath()+"/ylttrip/tfTicket/?repage"; + } + + /** + * 删除订单 + */ + @RequiresPermissions("ylttrip:tfTicket:del") + @RequestMapping(value = "delete") + public String delete(TfTicket tfTicket, RedirectAttributes redirectAttributes) { + tfTicketService.delete(tfTicket); + addMessage(redirectAttributes, "删除订单成功"); + return "redirect:"+Global.getAdminPath()+"/ylttrip/tfTicket/?repage"; + } + + /** + * 删除订单(逻辑删除,更新del_flag字段为1,在表包含字段del_flag时,可以调用此方法,将数据隐藏) + */ + @RequiresPermissions(value={"ylttrip:tfTicket:del","ylttrip:tfTicket:delByLogic"},logical=Logical.OR) + @RequestMapping(value = "deleteByLogic") + public String deleteByLogic(TfTicket tfTicket, RedirectAttributes redirectAttributes) { + tfTicketService.deleteByLogic(tfTicket); + addMessage(redirectAttributes, "逻辑删除订单成功"); + return "redirect:"+Global.getAdminPath()+"/ylttrip/tfTicket/?repage"; + } + + /** + * 批量删除订单 + */ + @RequiresPermissions("ylttrip:tfTicket:del") + @RequestMapping(value = "deleteAll") + public String deleteAll(String ids, RedirectAttributes redirectAttributes) { + String idArray[] =ids.split(","); + for(String id : idArray){ + tfTicketService.delete(tfTicketService.get(id)); + } + addMessage(redirectAttributes, "删除订单成功"); + return "redirect:"+Global.getAdminPath()+"/ylttrip/tfTicket/?repage"; + } + + /** + * 批量删除订单(逻辑删除,更新del_flag字段为1,在表包含字段del_flag时,可以调用此方法,将数据隐藏) + */ + @RequiresPermissions(value={"ylttrip:tfTicket:del","ylttrip:tfTicket:delByLogic"},logical=Logical.OR) + @RequestMapping(value = "deleteAllByLogic") + public String deleteAllByLogic(String ids, RedirectAttributes redirectAttributes) { + String idArray[] =ids.split(","); + for(String id : idArray){ + tfTicketService.deleteByLogic(tfTicketService.get(id)); + } + addMessage(redirectAttributes, "删除订单成功"); + return "redirect:"+Global.getAdminPath()+"/ylttrip/tfTicket/?repage"; + } + + /** + * 导出excel文件 + */ + @RequiresPermissions("ylttrip:tfTicket:export") + @RequestMapping(value = "export", method=RequestMethod.POST) + public String exportFile(TfTicket tfTicket, HttpServletRequest request, HttpServletResponse response, RedirectAttributes redirectAttributes) { + try { + String fileName = "订单"+DateUtils.getDate("yyyyMMddHHmmss")+".xlsx"; + Page page = tfTicketService.findPage(new Page(request, response, -1), tfTicket); + new ExportExcel("订单", TfTicket.class).setDataList(page.getList()).write(response, fileName).dispose(); + return null; + } catch (Exception e) { + addMessage(redirectAttributes, "导出订单记录失败!失败信息:"+e.getMessage()); + } + return "redirect:"+Global.getAdminPath()+"/ylttrip/tfTicket/?repage"; + } + + /** + * 导入Excel数据 + + */ + @RequiresPermissions("ylttrip:tfTicket:import") + @RequestMapping(value = "import", method=RequestMethod.POST) + public String importFile(MultipartFile file, RedirectAttributes redirectAttributes) { + try { + int successNum = 0; + ImportExcel ei = new ImportExcel(file, 1, 0); + List list = ei.getDataList(TfTicket.class); + for (TfTicket tfTicket : list){ + tfTicketService.save(tfTicket); + } + successNum=list.size(); + addMessage(redirectAttributes, "已成功导入 "+successNum+" 条订单记录"); + } catch (Exception e) { + addMessage(redirectAttributes, "导入订单失败!失败信息:"+e.getMessage()); + } + return "redirect:"+Global.getAdminPath()+"/ylttrip/tfTicket/?repage"; + } + + /** + * 下载导入订单数据模板 + */ + @RequiresPermissions("ylttrip:tfTicket:import") + @RequestMapping(value = "import/template") + public String importFileTemplate(HttpServletResponse response, RedirectAttributes redirectAttributes) { + try { + String fileName = "订单数据导入模板.xlsx"; + List list = Lists.newArrayList(); + new ExportExcel("订单数据", TfTicket.class, 1).setDataList(list).write(response, fileName).dispose(); + return null; + } catch (Exception e) { + addMessage(redirectAttributes, "导入模板下载失败!失败信息:"+e.getMessage()); + } + return "redirect:"+Global.getAdminPath()+"/ylttrip/tfTicket/?repage"; + } + + +} \ No newline at end of file diff --git a/JeeSpringCloud/jeespring-web/src/main/java/com/jeespring/modules/test/dao/one/FormLeaveDao.java b/JeeSpringCloud/jeespring-web/src/main/java/com/jeespring/modules/test/dao/one/FormLeaveDao.java new file mode 100644 index 0000000000000000000000000000000000000000..b31f56f8c5d74b2a204efbfe7e594ba4571d3946 --- /dev/null +++ b/JeeSpringCloud/jeespring-web/src/main/java/com/jeespring/modules/test/dao/one/FormLeaveDao.java @@ -0,0 +1,18 @@ +/** + * * Copyright © 2015-2020 JeeSpringCloud All rights reserved.. + */ +package com.jeespring.modules.test.dao.one; + +import com.jeespring.common.persistence.InterfaceBaseDao; +import org.apache.ibatis.annotations.Mapper; +import com.jeespring.modules.test.entity.one.FormLeave; + +/** + * 请假DAO接口 + * @author JeeSpring + * @version 2018-10-12 + */ +@Mapper +public interface FormLeaveDao extends InterfaceBaseDao { + +} \ No newline at end of file diff --git a/JeeSpringCloud/jeespring-web/src/main/java/com/jeespring/modules/test/dao/onetomany/TestDataChild2Dao.java b/JeeSpringCloud/jeespring-web/src/main/java/com/jeespring/modules/test/dao/onetomany/TestDataChild2Dao.java new file mode 100644 index 0000000000000000000000000000000000000000..3d543e9d40e2b7f02f7f476727d66ab24ef47be7 --- /dev/null +++ b/JeeSpringCloud/jeespring-web/src/main/java/com/jeespring/modules/test/dao/onetomany/TestDataChild2Dao.java @@ -0,0 +1,18 @@ +/** + * * Copyright © 2015-2020 JeeSpringCloud All rights reserved.. + */ +package com.jeespring.modules.test.dao.onetomany; + +import com.jeespring.common.persistence.InterfaceBaseDao; +import org.apache.ibatis.annotations.Mapper; +import com.jeespring.modules.test.entity.onetomany.TestDataChild2; + +/** + * 订票DAO接口 + * @author JeeSpring + * @version 2018-10-12 + */ +@Mapper +public interface TestDataChild2Dao extends InterfaceBaseDao { + +} \ No newline at end of file diff --git a/JeeSpringCloud/jeespring-web/src/main/java/com/jeespring/modules/test/dao/onetomany/TestDataChild3Dao.java b/JeeSpringCloud/jeespring-web/src/main/java/com/jeespring/modules/test/dao/onetomany/TestDataChild3Dao.java new file mode 100644 index 0000000000000000000000000000000000000000..42ef6d5e73344376916f091da6163a00e822cf69 --- /dev/null +++ b/JeeSpringCloud/jeespring-web/src/main/java/com/jeespring/modules/test/dao/onetomany/TestDataChild3Dao.java @@ -0,0 +1,18 @@ +/** + * * Copyright © 2015-2020 JeeSpringCloud All rights reserved.. + */ +package com.jeespring.modules.test.dao.onetomany; + +import com.jeespring.common.persistence.InterfaceBaseDao; +import org.apache.ibatis.annotations.Mapper; +import com.jeespring.modules.test.entity.onetomany.TestDataChild3; + +/** + * 订票DAO接口 + * @author JeeSpring + * @version 2018-10-12 + */ +@Mapper +public interface TestDataChild3Dao extends InterfaceBaseDao { + +} \ No newline at end of file diff --git a/JeeSpringCloud/jeespring-web/src/main/java/com/jeespring/modules/test/dao/onetomany/TestDataChildDao.java b/JeeSpringCloud/jeespring-web/src/main/java/com/jeespring/modules/test/dao/onetomany/TestDataChildDao.java new file mode 100644 index 0000000000000000000000000000000000000000..ff01a772adc6080cbc0e029c0693321a41608b38 --- /dev/null +++ b/JeeSpringCloud/jeespring-web/src/main/java/com/jeespring/modules/test/dao/onetomany/TestDataChildDao.java @@ -0,0 +1,18 @@ +/** + * * Copyright © 2015-2020 JeeSpringCloud All rights reserved.. + */ +package com.jeespring.modules.test.dao.onetomany; + +import com.jeespring.common.persistence.InterfaceBaseDao; +import org.apache.ibatis.annotations.Mapper; +import com.jeespring.modules.test.entity.onetomany.TestDataChild; + +/** + * 订票DAO接口 + * @author JeeSpring + * @version 2018-10-12 + */ +@Mapper +public interface TestDataChildDao extends InterfaceBaseDao { + +} \ No newline at end of file diff --git a/JeeSpringCloud/jeespring-web/src/main/java/com/jeespring/modules/test/dao/onetomany/TestDataMainDao.java b/JeeSpringCloud/jeespring-web/src/main/java/com/jeespring/modules/test/dao/onetomany/TestDataMainDao.java new file mode 100644 index 0000000000000000000000000000000000000000..19483a07e649d163ce84f7aa7705cd1fa7071076 --- /dev/null +++ b/JeeSpringCloud/jeespring-web/src/main/java/com/jeespring/modules/test/dao/onetomany/TestDataMainDao.java @@ -0,0 +1,18 @@ +/** + * * Copyright © 2015-2020 JeeSpringCloud All rights reserved.. + */ +package com.jeespring.modules.test.dao.onetomany; + +import com.jeespring.common.persistence.InterfaceBaseDao; +import org.apache.ibatis.annotations.Mapper; +import com.jeespring.modules.test.entity.onetomany.TestDataMain; + +/** + * 订票DAO接口 + * @author JeeSpring + * @version 2018-10-12 + */ +@Mapper +public interface TestDataMainDao extends InterfaceBaseDao { + +} \ No newline at end of file diff --git a/JeeSpringCloud/jeespring-web/src/main/java/com/jeespring/modules/test/dao/tree/TestTreeDao.java b/JeeSpringCloud/jeespring-web/src/main/java/com/jeespring/modules/test/dao/tree/TestTreeDao.java new file mode 100644 index 0000000000000000000000000000000000000000..39b8c22bfd1214c8a570f8901b9f701ad8bdea4a --- /dev/null +++ b/JeeSpringCloud/jeespring-web/src/main/java/com/jeespring/modules/test/dao/tree/TestTreeDao.java @@ -0,0 +1,19 @@ +/** + * * Copyright © 2015-2020 JeeSpringCloud All rights reserved.. + */ +package com.jeespring.modules.test.dao.tree; + +import com.jeespring.common.persistence.TreeDao; +import com.jeespring.common.persistence.annotation.MyBatisDao; +import org.apache.ibatis.annotations.Mapper; +import com.jeespring.modules.test.entity.tree.TestTree; + +/** + * 树DAO接口 + * @author JeeSpring + * @version 2018-10-11 + */ +@Mapper +public interface TestTreeDao extends TreeDao { + +} \ No newline at end of file diff --git a/JeeSpringCloud/jeespring-web/src/main/java/com/jeespring/modules/test/entity/one/FormLeave.java b/JeeSpringCloud/jeespring-web/src/main/java/com/jeespring/modules/test/entity/one/FormLeave.java new file mode 100644 index 0000000000000000000000000000000000000000..bd5e7940565b3496f04d8f146e8d0f33c8f3ecbf --- /dev/null +++ b/JeeSpringCloud/jeespring-web/src/main/java/com/jeespring/modules/test/entity/one/FormLeave.java @@ -0,0 +1,91 @@ +/** + * * Copyright © 2015-2020 JeeSpringCloud All rights reserved.. + */ +package com.jeespring.modules.test.entity.one; + +import com.jeespring.modules.sys.entity.User; +import javax.validation.constraints.NotNull; +import com.jeespring.modules.sys.entity.Office; +import com.jeespring.modules.sys.entity.Area; +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; + +import com.alibaba.fastjson.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.jeespring.common.persistence.AbstractBaseEntity; +import com.jeespring.common.utils.excel.annotation.ExcelField; +import com.jeespring.modules.sys.utils.DictUtils; + +/** + * 请假Entity + * @author JeeSpring + * @version 2018-10-12 + */ +public class FormLeave extends AbstractBaseEntity { + + private static final long serialVersionUID = 1L; + private com.jeespring.modules.sys.entity.User user; // 员工 + private com.jeespring.modules.sys.entity.Office office; // 归属部门 + private com.jeespring.modules.sys.entity.Area area; // 归属区域 + private java.util.Date beginDate; // 请假开始日期 + private java.util.Date endDate; // 请假结束日期 + + public FormLeave() { + super(); + } + + public FormLeave(String id){ + super(id); + } + + @NotNull(message="员工不能为空") + @ExcelField(title="员工", fieldType=User.class, value="user.name", align=2, sort=1) + public User getUser() { + return user; + } + + public void setUser(User user) { + this.user = user; + } + @NotNull(message="归属部门不能为空") + @ExcelField(title="归属部门", fieldType=Office.class, value="office.name", align=2, sort=2) + public Office getOffice() { + return office; + } + + public void setOffice(Office office) { + this.office = office; + } + @ExcelField(title="归属区域", fieldType=Area.class, value="area.name", align=2, sort=3) + public Area getArea() { + return area; + } + + public void setArea(Area area) { + this.area = area; + } + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @NotNull(message="请假开始日期不能为空") + @ExcelField(title="请假开始日期", align=2, sort=4) + public Date getBeginDate() { + return beginDate; + } + + public void setBeginDate(Date beginDate) { + this.beginDate = beginDate; + } + + + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @NotNull(message="请假结束日期不能为空") + @ExcelField(title="请假结束日期", align=2, sort=5) + public Date getEndDate() { + return endDate; + } + + public void setEndDate(Date endDate) { + this.endDate = endDate; + } + + +} \ No newline at end of file diff --git a/JeeSpringCloud/jeespring-web/src/main/java/com/jeespring/modules/test/entity/onetomany/TestDataChild.java b/JeeSpringCloud/jeespring-web/src/main/java/com/jeespring/modules/test/entity/onetomany/TestDataChild.java new file mode 100644 index 0000000000000000000000000000000000000000..ca47547be5332f54f4eb5367dc8acc0a52a7d946 --- /dev/null +++ b/JeeSpringCloud/jeespring-web/src/main/java/com/jeespring/modules/test/entity/onetomany/TestDataChild.java @@ -0,0 +1,81 @@ +/** + * * Copyright © 2015-2020 JeeSpringCloud All rights reserved.. + */ +package com.jeespring.modules.test.entity.onetomany; + +import com.jeespring.modules.sys.entity.Area; +import javax.validation.constraints.NotNull; +import org.hibernate.validator.constraints.Length; + +import com.alibaba.fastjson.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.jeespring.common.persistence.AbstractBaseEntity; +import com.jeespring.common.utils.excel.annotation.ExcelField; +import com.jeespring.modules.sys.utils.DictUtils; + +/** + * 订票Entity + * @author JeeSpring + * @version 2018-10-12 + */ +public class TestDataChild extends AbstractBaseEntity { + + private static final long serialVersionUID = 1L; + private com.jeespring.modules.sys.entity.Area start; // 出发地 + private com.jeespring.modules.sys.entity.Area end; // 目的地 + private Double price; // 代理价格 + private TestDataMain testDataMain; // 业务主表ID 父类testDataMain.id + + public TestDataChild() { + super(); + } + + public TestDataChild(String id){ + super(id); + } + + public TestDataChild(TestDataMain testDataMain){ + this.testDataMain = testDataMain; + } + + @NotNull(message="出发地不能为空") + @ExcelField(title="出发地", fieldType=Area.class, value="start.name", align=2, sort=1) + public Area getStart() { + return start; + } + + public void setStart(Area start) { + this.start = start; + } + @NotNull(message="目的地不能为空") + @ExcelField(title="目的地", fieldType=Area.class, value="end.name", align=2, sort=2) + public Area getEnd() { + return end; + } + + public void setEnd(Area end) { + this.end = end; + } + @NotNull(message="代理价格不能为空") + @ExcelField(title="代理价格", align=2, sort=3) + public Double getPrice() { + return price; + } + + public void setPrice(Double price) { + this.price = price; + } + + + @Length(min=0, max=64, message="业务主表ID长度必须介于 0 和 64 之间") + @JsonIgnore + @JSONField(serialize=false) + public TestDataMain getTestDataMain() { + return testDataMain; + } + + public void setTestDataMain(TestDataMain testDataMain) { + this.testDataMain = testDataMain; + } + +} \ No newline at end of file diff --git a/JeeSpringCloud/jeespring-web/src/main/java/com/jeespring/modules/test/entity/onetomany/TestDataChild2.java b/JeeSpringCloud/jeespring-web/src/main/java/com/jeespring/modules/test/entity/onetomany/TestDataChild2.java new file mode 100644 index 0000000000000000000000000000000000000000..d0b7d4aa7e15ab8863340d5d6378b0da3ac97a38 --- /dev/null +++ b/JeeSpringCloud/jeespring-web/src/main/java/com/jeespring/modules/test/entity/onetomany/TestDataChild2.java @@ -0,0 +1,80 @@ +/** + * * Copyright © 2015-2020 JeeSpringCloud All rights reserved.. + */ +package com.jeespring.modules.test.entity.onetomany; + +import com.jeespring.modules.sys.entity.Area; +import javax.validation.constraints.NotNull; +import org.hibernate.validator.constraints.Length; + +import com.alibaba.fastjson.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.jeespring.common.persistence.AbstractBaseEntity; +import com.jeespring.common.utils.excel.annotation.ExcelField; +import com.jeespring.modules.sys.utils.DictUtils; + +/** + * 订票Entity + * @author JeeSpring + * @version 2018-10-12 + */ +public class TestDataChild2 extends AbstractBaseEntity { + + private static final long serialVersionUID = 1L; + private com.jeespring.modules.sys.entity.Area start; // 出发地 + private com.jeespring.modules.sys.entity.Area end; // 目的地 + private Double price; // 代理价格 + private TestDataMain testDataMain; // 外键 父类testDataMain.id + + public TestDataChild2() { + super(); + } + + public TestDataChild2(String id){ + super(id); + } + + public TestDataChild2(TestDataMain testDataMain){ + this.testDataMain = testDataMain; + } + + @NotNull(message="出发地不能为空") + @ExcelField(title="出发地", fieldType=Area.class, value="start.name", align=2, sort=1) + public Area getStart() { + return start; + } + + public void setStart(Area start) { + this.start = start; + } + @NotNull(message="目的地不能为空") + @ExcelField(title="目的地", fieldType=Area.class, value="end.name", align=2, sort=2) + public Area getEnd() { + return end; + } + + public void setEnd(Area end) { + this.end = end; + } + @ExcelField(title="代理价格", align=2, sort=3) + public Double getPrice() { + return price; + } + + public void setPrice(Double price) { + this.price = price; + } + + + @Length(min=1, max=64, message="外键长度必须介于 1 和 64 之间") + @JsonIgnore + @JSONField(serialize=false) + public TestDataMain getTestDataMain() { + return testDataMain; + } + + public void setTestDataMain(TestDataMain testDataMain) { + this.testDataMain = testDataMain; + } + +} \ No newline at end of file diff --git a/JeeSpringCloud/jeespring-web/src/main/java/com/jeespring/modules/test/entity/onetomany/TestDataChild3.java b/JeeSpringCloud/jeespring-web/src/main/java/com/jeespring/modules/test/entity/onetomany/TestDataChild3.java new file mode 100644 index 0000000000000000000000000000000000000000..7fb9a471046f99684bb8cea6ed412df767f45883 --- /dev/null +++ b/JeeSpringCloud/jeespring-web/src/main/java/com/jeespring/modules/test/entity/onetomany/TestDataChild3.java @@ -0,0 +1,80 @@ +/** + * * Copyright © 2015-2020 JeeSpringCloud All rights reserved.. + */ +package com.jeespring.modules.test.entity.onetomany; + +import com.jeespring.modules.sys.entity.Area; +import javax.validation.constraints.NotNull; +import org.hibernate.validator.constraints.Length; + +import com.alibaba.fastjson.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.jeespring.common.persistence.AbstractBaseEntity; +import com.jeespring.common.utils.excel.annotation.ExcelField; +import com.jeespring.modules.sys.utils.DictUtils; + +/** + * 订票Entity + * @author JeeSpring + * @version 2018-10-12 + */ +public class TestDataChild3 extends AbstractBaseEntity { + + private static final long serialVersionUID = 1L; + private com.jeespring.modules.sys.entity.Area start; // 出发地 + private com.jeespring.modules.sys.entity.Area end; // 目的地 + private Double price; // 代理价格 + private TestDataMain testDataMain; // 外键 父类testDataMain.id + + public TestDataChild3() { + super(); + } + + public TestDataChild3(String id){ + super(id); + } + + public TestDataChild3(TestDataMain testDataMain){ + this.testDataMain = testDataMain; + } + + @NotNull(message="出发地不能为空") + @ExcelField(title="出发地", fieldType=Area.class, value="start.name", align=2, sort=1) + public Area getStart() { + return start; + } + + public void setStart(Area start) { + this.start = start; + } + @NotNull(message="目的地不能为空") + @ExcelField(title="目的地", fieldType=Area.class, value="end.name", align=2, sort=2) + public Area getEnd() { + return end; + } + + public void setEnd(Area end) { + this.end = end; + } + @ExcelField(title="代理价格", align=2, sort=3) + public Double getPrice() { + return price; + } + + public void setPrice(Double price) { + this.price = price; + } + + + @Length(min=1, max=64, message="外键长度必须介于 1 和 64 之间") + @JsonIgnore + @JSONField(serialize=false) + public TestDataMain getTestDataMain() { + return testDataMain; + } + + public void setTestDataMain(TestDataMain testDataMain) { + this.testDataMain = testDataMain; + } + +} \ No newline at end of file diff --git a/JeeSpringCloud/jeespring-web/src/main/java/com/jeespring/modules/test/entity/onetomany/TestDataMain.java b/JeeSpringCloud/jeespring-web/src/main/java/com/jeespring/modules/test/entity/onetomany/TestDataMain.java new file mode 100644 index 0000000000000000000000000000000000000000..2d0d64654dc8206e3429ec5db76acb6001a96153 --- /dev/null +++ b/JeeSpringCloud/jeespring-web/src/main/java/com/jeespring/modules/test/entity/onetomany/TestDataMain.java @@ -0,0 +1,156 @@ +/** + * * Copyright © 2015-2020 JeeSpringCloud All rights reserved.. + */ +package com.jeespring.modules.test.entity.onetomany; + +import com.jeespring.modules.sys.entity.User; +import javax.validation.constraints.NotNull; +import com.jeespring.modules.sys.entity.Office; +import com.jeespring.modules.sys.entity.Area; +import org.hibernate.validator.constraints.Length; +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; +import java.util.List; +import com.google.common.collect.Lists; + +import com.alibaba.fastjson.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.jeespring.common.persistence.AbstractBaseEntity; +import com.jeespring.common.utils.excel.annotation.ExcelField; +import com.jeespring.modules.sys.utils.DictUtils; + +/** + * 订票Entity + * @author JeeSpring + * @version 2018-10-12 + */ +public class TestDataMain extends AbstractBaseEntity { + + private static final long serialVersionUID = 1L; + private com.jeespring.modules.sys.entity.User user; // 归属用户 + private com.jeespring.modules.sys.entity.Office office; // 归属部门 + private com.jeespring.modules.sys.entity.Area area; // 归属区域 + private String name; // 名称 + private String sex; // 性别 + private String sexLabel; // 性别Label + private String sexPicture; // 性别Picture + private java.util.Date inDate; // 加入日期 + private java.util.Date beginInDate; // 开始 加入日期 + private java.util.Date endInDate; // 结束 加入日期 + private List testDataChildList = Lists.newArrayList(); // 子表列表 + private List testDataChild2List = Lists.newArrayList(); // 子表列表 + private List testDataChild3List = Lists.newArrayList(); // 子表列表 + + public TestDataMain() { + super(); + } + + public TestDataMain(String id){ + super(id); + } + + @NotNull(message="归属用户不能为空") + @ExcelField(title="归属用户", fieldType=User.class, value="user.name", align=2, sort=1) + public User getUser() { + return user; + } + + public void setUser(User user) { + this.user = user; + } + @NotNull(message="归属部门不能为空") + @ExcelField(title="归属部门", fieldType=Office.class, value="office.name", align=2, sort=2) + public Office getOffice() { + return office; + } + + public void setOffice(Office office) { + this.office = office; + } + @NotNull(message="归属区域不能为空") + @ExcelField(title="归属区域", fieldType=Area.class, value="area.name", align=2, sort=3) + public Area getArea() { + return area; + } + + public void setArea(Area area) { + this.area = area; + } + @Length(min=1, max=100, message="名称长度必须介于 1 和 100 之间") + @ExcelField(title="名称", align=2, sort=4) + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + + @Length(min=1, max=1, message="性别长度必须介于 1 和 1 之间") + @ExcelField(title="性别", dictType="sex", align=2, sort=5) + public String getSex() { + return sex; + } + + public void setSex(String sex) { + this.sex = sex; + } + + + public String getSexLabel() { + return DictUtils.getDictLabel(sex,"sex",""); + } + public String getSexPicture() { + return DictUtils.getDictPicture(sex,"sex",""); + } + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @NotNull(message="加入日期不能为空") + @ExcelField(title="加入日期", align=2, sort=6) + public Date getInDate() { + return inDate; + } + + public void setInDate(Date inDate) { + this.inDate = inDate; + } + + + public Date getBeginInDate() { + return beginInDate; + } + + public void setBeginInDate(Date beginInDate) { + this.beginInDate = beginInDate; + } + + public Date getEndInDate() { + return endInDate; + } + + public void setEndInDate(Date endInDate) { + this.endInDate = endInDate; + } + + public List getTestDataChildList() { + return testDataChildList; + } + + public void setTestDataChildList(List testDataChildList) { + this.testDataChildList = testDataChildList; + } + public List getTestDataChild2List() { + return testDataChild2List; + } + + public void setTestDataChild2List(List testDataChild2List) { + this.testDataChild2List = testDataChild2List; + } + public List getTestDataChild3List() { + return testDataChild3List; + } + + public void setTestDataChild3List(List testDataChild3List) { + this.testDataChild3List = testDataChild3List; + } +} \ No newline at end of file diff --git a/JeeSpringCloud/jeespring-web/src/main/java/com/jeespring/modules/test/entity/tree/TestTree.java b/JeeSpringCloud/jeespring-web/src/main/java/com/jeespring/modules/test/entity/tree/TestTree.java new file mode 100644 index 0000000000000000000000000000000000000000..d28a7bdf3a7fd505fafcd1379f139336d186350a --- /dev/null +++ b/JeeSpringCloud/jeespring-web/src/main/java/com/jeespring/modules/test/entity/tree/TestTree.java @@ -0,0 +1,82 @@ +/** + * * Copyright © 2015-2020 JeeSpringCloud All rights reserved.. + */ +package com.jeespring.modules.test.entity.tree; + +import org.hibernate.validator.constraints.Length; +import javax.validation.constraints.NotNull; +import com.fasterxml.jackson.annotation.JsonBackReference; + +import com.jeespring.common.persistence.TreeEntity; + +/** + * 树Entity + * @author JeeSpring + * @version 2018-10-11 + */ +public class TestTree extends TreeEntity { + + private static final long serialVersionUID = 1L; + private String name; // 名称 + private Integer sort; // 排序 + private TestTree parent; // 父级编号 + private String parentIds; // 所有父级编号 + + public TestTree() { + super(); + } + + public TestTree(String id){ + super(id); + } + + @Override + @Length(min=1, max=100, message="名称长度必须介于 1 和 100 之间") + public String getName() { + return name; + } + + @Override + public void setName(String name) { + this.name = name; + } + + @Override + @NotNull(message="排序不能为空") + public Integer getSort() { + return sort; + } + + @Override + public void setSort(Integer sort) { + this.sort = sort; + } + + @Override + @JsonBackReference + @NotNull(message="父级编号不能为空") + public TestTree getParent() { + return parent; + } + + @Override + public void setParent(TestTree parent) { + this.parent = parent; + } + + @Override + @Length(min=1, max=2000, message="所有父级编号长度必须介于 1 和 2000 之间") + public String getParentIds() { + return parentIds; + } + + @Override + public void setParentIds(String parentIds) { + this.parentIds = parentIds; + } + + @Override + public String getParentId() { + return parent != null && parent.getId() != null ? parent.getId() : "0"; + } +} \ No newline at end of file diff --git a/JeeSpringCloud/jeespring-web/src/main/java/com/jeespring/modules/test/rest/one/FormLeaveRestController.java b/JeeSpringCloud/jeespring-web/src/main/java/com/jeespring/modules/test/rest/one/FormLeaveRestController.java new file mode 100644 index 0000000000000000000000000000000000000000..87f28d6bf5ba3eff0948eaeed0691ed1b13c8be7 --- /dev/null +++ b/JeeSpringCloud/jeespring-web/src/main/java/com/jeespring/modules/test/rest/one/FormLeaveRestController.java @@ -0,0 +1,301 @@ +/** + * * Copyright © 2015-2020 JeeSpringCloud All rights reserved.. + */ +package com.jeespring.modules.test.rest.one; + +import java.util.List; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.apache.shiro.authz.annotation.Logical; +import org.apache.shiro.authz.annotation.RequiresPermissions; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.web.bind.annotation.ModelAttribute; +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.multipart.MultipartFile; +import org.springframework.web.servlet.mvc.support.RedirectAttributes; + +import com.google.common.collect.Lists; +import com.jeespring.common.utils.DateUtils; +import com.jeespring.common.config.Global; +import com.jeespring.common.persistence.Page; +import com.jeespring.common.web.AbstractBaseController; +import com.jeespring.common.utils.StringUtils; +import com.jeespring.common.utils.excel.ExportExcel; +import com.jeespring.common.utils.excel.ImportExcel; +import com.jeespring.modules.test.entity.one.FormLeave; +import com.jeespring.modules.test.service.one.IFormLeaveService; +import org.springframework.web.bind.annotation.RestController; +import com.jeespring.common.web.Result; +import com.jeespring.common.web.ResultFactory; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiImplicitParams; +import io.swagger.annotations.ApiOperation; +import org.springframework.web.bind.annotation.*; + +/** + * 请假Controller + * @author JeeSpring + * @version 2018-10-12 + */ +@RestController +@RequestMapping(value = "/rest/test/one/formLeave") +@Api(value="请假接口", description="请假接口") +public class FormLeaveRestController extends AbstractBaseController { + + @Autowired + private IFormLeaveService formLeaveService; + + /** + * 请假信息 + */ + @RequestMapping(value = {"get"},method ={RequestMethod.POST,RequestMethod.GET}) + @ApiOperation(value="请假信息(Content-Type为text/html)", notes="请假信息(Content-Type为text/html)") + @ApiImplicitParam(name = "id", value = "请假id", required = false, dataType = "String",paramType="query") + public Result getRequestParam(@RequestParam(required=false) String id) { + return get(id); + } + + @RequestMapping(value = {"get/json"},method ={RequestMethod.POST}) + @ApiOperation(value="请假信息(Content-Type为application/json)", notes="请假信息(Content-Type为application/json)") + @ApiImplicitParam(name = "id", value = "请假id", required = false, dataType = "String",paramType="body") + public Result getRequestBody(@RequestBody(required=false) String id) { + return get(id); + } + + private Result get(String id) { + FormLeave entity = null; + if (StringUtils.isNotBlank(id)){ + entity = formLeaveService.getCache(id); + //entity = formLeaveService.get(id); + } + if (entity == null){ + entity = new FormLeave(); + } + Result result = ResultFactory.getSuccessResult(); + result.setResultObject(entity); + return result; + } + + /** + * 请假列表(不包含页信息) + */ + //RequiresPermissions("test:one:formLeave:findList") + @RequestMapping(value = {"findList"},method ={RequestMethod.POST,RequestMethod.GET}) + @ApiOperation(value="请假列表(不包含页信息)(Content-Type为text/html)", notes="请假列表(不包含页信息)(Content-Type为text/html)") + @ApiImplicitParam(name = "formLeave", value = "请假", dataType = "FormLeave",paramType="query") + public Result findListRequestParam(FormLeave formLeave, HttpServletRequest request, HttpServletResponse response, Model model) { + return findList( formLeave,model); + } + + @RequestMapping(value = {"findList/json"},method ={RequestMethod.POST}) + @ApiOperation(value="请假列表(不包含页信息)(Content-Type为application/json)", notes="请假列表(不包含页信息)(Content-Type为application/json)") + @ApiImplicitParam(name = "formLeave", value = "请假", dataType = "FormLeave",paramType="body") + public Result findListRequestBody(@RequestBody FormLeave formLeave, Model model) { + return findList( formLeave,model); + } + + private Result findList(FormLeave formLeave, Model model) { + List list = formLeaveService.findListCache(formLeave); + //List list = formLeaveService.findList(formLeave); + Result result = ResultFactory.getSuccessResult(); + result.setResultObject(list); + return result; + } + + /** + * 请假列表(包含页信息) + */ + //RequiresPermissions("test:one:formLeave:list") + @RequestMapping(value = {"list"},method ={RequestMethod.POST,RequestMethod.GET}) + @ApiOperation(value="请假列表(包含页信息)(Content-Type为text/html)", notes="请假列表(包含页信息)(Content-Type为text/html)") + @ApiImplicitParam(name = "formLeave", value = "请假", dataType = "FormLeave",paramType="query") + public Result listRequestParam(FormLeave formLeave, HttpServletRequest request, HttpServletResponse response, Model model) { + return list(formLeave,model); + } + + @RequestMapping(value = {"list/json"},method ={RequestMethod.POST}) + @ApiOperation(value="请假列表(包含页信息)(Content-Type为application/json)", notes="请假列表(包含页信息)(Content-Type为application/json)") + @ApiImplicitParam(name = "formLeave", value = "请假", dataType = "FormLeave",paramType="body") + public Result listRequestBody(@RequestBody FormLeave formLeave, Model model) { + return list(formLeave,model); + } + + private Result list(FormLeave formLeave, Model model) { + Page page = formLeaveService.findPageCache(new Page(formLeave.getPageNo(),formLeave.getPageSize(),formLeave.getOrderBy()), formLeave); + //Page page = formLeaveService.findPage(new Page(formLeave.getPageNo(),formLeave.getPageSize(),formLeave.getOrderBy()), formLeave); + Result result = ResultFactory.getSuccessResult(); + result.setResultObject(page); + return result; + } + + /** + * 请假获取列表第一条记录 + */ + //RequiresPermissions("test:one:formLeave:listFrist") + @RequestMapping(value = {"listFrist"},method ={RequestMethod.POST,RequestMethod.GET}) + @ApiOperation(value="请假获取列表第一条记录(Content-Type为text/html)", notes="请假获取列表第一条记录(Content-Type为text/html)") + @ApiImplicitParam(name = "formLeave", value = "请假", dataType = "FormLeave",paramType="query") + public Result listFristRequestParam(FormLeave formLeave, HttpServletRequest request, HttpServletResponse response, Model model) { + return listFrist(formLeave,model); + } + + @RequestMapping(value = {"listFrist/json"},method ={RequestMethod.POST}) + @ApiOperation(value="请假获取列表第一条记录(Content-Type为application/json)", notes="请假获取列表第一条记录(Content-Type为application/json)") + @ApiImplicitParam(name = "formLeave", value = "请假", dataType = "FormLeave",paramType="body") + public Result listFristRequestBody(@RequestBody FormLeave formLeave, Model model) { + return listFrist(formLeave,model); + } + + private Result listFrist(FormLeave formLeave, Model model) { + Page page = formLeaveService.findPageCache(new Page(formLeave.getPageNo(),formLeave.getPageSize(),formLeave.getOrderBy()), formLeave); + //Page page = formLeaveService.findPage(new Page(formLeave.getPageNo(),formLeave.getPageSize(),formLeave.getOrderBy()), formLeave); + Result result = ResultFactory.getSuccessResult(); + if(page.getList().size()>0){ + result.setResultObject(page.getList().get(0)); + }else{ + result=ResultFactory.getErrorResult("没有记录!"); + } + return result; + } + + /** + * 保存请假 + */ + //RequiresPermissions(value={"test:one:formLeave:add","test:one:formLeave:edit"},logical=Logical.OR) + @RequestMapping(value = "save",method ={RequestMethod.POST,RequestMethod.GET}) + @ApiOperation(value="保存请假(Content-Type为text/html)", notes="保存请假(Content-Type为text/html)") + @ApiImplicitParam(name = "formLeave", value = "请假", dataType = "FormLeave",paramType="query") + public Result saveRequestParam(FormLeave formLeave, Model model, RedirectAttributes redirectAttributes) { + return save(formLeave,model,redirectAttributes); + } + + @RequestMapping(value = "save/json",method ={RequestMethod.POST}) + @ApiOperation(value="保存请假(Content-Type为application/json)", notes="保存请假(Content-Type为application/json)") + @ApiImplicitParam(name = "formLeave", value = "请假", dataType = "FormLeave",paramType="body") + public Result saveRequestBody(@RequestBody FormLeave formLeave, Model model, RedirectAttributes redirectAttributes) { + return save(formLeave,model,redirectAttributes); + } + + private Result save(FormLeave formLeave, Model model, RedirectAttributes redirectAttributes) { + if (!beanValidator(model, formLeave)){ + Result result = ResultFactory.getErrorResult("数据验证失败"); + } + formLeaveService.save(formLeave); + Result result = ResultFactory.getSuccessResult("保存请假成功"); + return result; + } + + /** + * 删除请假 + */ + //RequiresPermissions("test:one:formLeave:del") + @RequestMapping(value = "delete",method ={RequestMethod.POST,RequestMethod.GET}) + @ApiOperation(value="删除请假(Content-Type为text/html)", notes="删除请假(Content-Type为text/html)") + @ApiImplicitParam(name = "formLeave", value = "请假", dataType = "FormLeave",paramType="query") + public Result deleteRequestParam(FormLeave formLeave, RedirectAttributes redirectAttributes) { + return delete(formLeave,redirectAttributes); + } + + @RequestMapping(value = "delete/json",method ={RequestMethod.POST}) + @ApiOperation(value="删除请假(Content-Type为application/json)", notes="删除请假(Content-Type为application/json)") + @ApiImplicitParam(name = "formLeave", value = "请假", dataType = "FormLeave",paramType="body") + public Result deleteRequestBody(@RequestBody FormLeave formLeave, RedirectAttributes redirectAttributes) { + return delete(formLeave,redirectAttributes); + } + + private Result delete(FormLeave formLeave, RedirectAttributes redirectAttributes) { + formLeaveService.delete(formLeave); + Result result = ResultFactory.getSuccessResult("删除请假成功"); + return result; + } + + /** + * 删除请假(逻辑删除,更新del_flag字段为1,在表包含字段del_flag时,可以调用此方法,将数据隐藏) + */ + @RequestMapping(value = "deleteByLogic",method ={RequestMethod.POST,RequestMethod.GET}) + @ApiOperation(value="逻辑删除请假(Content-Type为text/html)", notes="逻辑删除请假(Content-Type为text/html)") + @ApiImplicitParam(name = "formLeave", value = "请假", dataType = "FormLeave",paramType="query") + public Result deleteByLogicRequestParam(FormLeave formLeave, RedirectAttributes redirectAttributes) { + return deleteByLogic(formLeave,redirectAttributes); + } + + /** + * 删除请假(逻辑删除,更新del_flag字段为1,在表包含字段del_flag时,可以调用此方法,将数据隐藏) + */ + @RequestMapping(value = "deleteByLogic/json",method ={RequestMethod.POST}) + @ApiOperation(value="逻辑删除请假(Content-Type为application/json)", notes="逻辑删除请假(Content-Type为application/json)") + @ApiImplicitParam(name = "formLeave", value = "请假", dataType = "FormLeave",paramType="body") + public Result deleteByLogicRequestBody(@RequestBody FormLeave formLeave, RedirectAttributes redirectAttributes) { + return deleteByLogic(formLeave,redirectAttributes); + } + + private Result deleteByLogic(FormLeave formLeave, RedirectAttributes redirectAttributes) { + formLeaveService.deleteByLogic(formLeave); + Result result = ResultFactory.getSuccessResult("删除请假成功"); + return result; + } + + /** + * 批量删除请假 + */ + //RequiresPermissions("test:one:formLeave:del") + @RequestMapping(value = "deleteAll",method ={RequestMethod.POST,RequestMethod.GET}) + @ApiOperation(value="批量删除请假(Content-Type为text/html)", notes="批量删除请假(Content-Type为text/html)") + @ApiImplicitParam(name = "ids", value = "请假ids,用,隔开", required = false, dataType = "String",paramType="query") + public Result deleteAllRequestParam(String ids, RedirectAttributes redirectAttributes) { + return deleteAll(ids,redirectAttributes); + } + + @RequestMapping(value = "deleteAll/json",method ={RequestMethod.POST}) + @ApiOperation(value="批量删除请假(Content-Type为application/json)", notes="批量删除请假(Content-Type为application/json)") + @ApiImplicitParam(name = "ids", value = "请假ids,用,隔开", required = false, dataType = "String",paramType="body") + public Result deleteAllRequestBody(@RequestBody String ids, RedirectAttributes redirectAttributes) { + return deleteAll(ids,redirectAttributes); + } + + private Result deleteAll(String ids, RedirectAttributes redirectAttributes) { + String[] idArray = ids.split(","); + for(String id : idArray){ + formLeaveService.delete(formLeaveService.get(id)); + } + Result result = ResultFactory.getSuccessResult("删除请假成功"); + return result; + } + + /** + * 批量删除请假(逻辑删除,更新del_flag字段为1,在表包含字段del_flag时,可以调用此方法,将数据隐藏) + */ + @RequestMapping(value = "deleteAllByLogic",method ={RequestMethod.POST,RequestMethod.GET}) + @ApiOperation(value="逻辑批量删除请假(Content-Type为text/html)", notes="逻辑批量删除请假(Content-Type为text/html)") + @ApiImplicitParam(name = "ids", value = "请假ids,用,隔开", required = false, dataType = "String",paramType="query") + public Result deleteAllByLogicRequestParam(String ids, RedirectAttributes redirectAttributes) { + return deleteAllByLogic(ids,redirectAttributes); + } + + /** + * 批量删除请假(逻辑删除,更新del_flag字段为1,在表包含字段del_flag时,可以调用此方法,将数据隐藏) + */ + @RequestMapping(value = "deleteAllByLogic/json",method ={RequestMethod.POST}) + @ApiOperation(value="逻辑批量删除请假(Content-Type为application/json)", notes="逻辑批量删除请假(Content-Type为application/json)") + @ApiImplicitParam(name = "ids", value = "请假ids,用,隔开", required = false, dataType = "String",paramType="body") + public Result deleteAllByLogicRequestBody(@RequestBody String ids, RedirectAttributes redirectAttributes) { + return deleteAllByLogic(ids,redirectAttributes); + } + + private Result deleteAllByLogic(String ids, RedirectAttributes redirectAttributes) { + String[] idArray = ids.split(","); + for(String id : idArray){ + formLeaveService.deleteByLogic(formLeaveService.get(id)); + } + Result result = ResultFactory.getSuccessResult("删除请假成功"); + return result; + } + +} \ No newline at end of file diff --git a/JeeSpringCloud/jeespring-web/src/main/java/com/jeespring/modules/test/rest/onetomany/TestDataMainRestController.java b/JeeSpringCloud/jeespring-web/src/main/java/com/jeespring/modules/test/rest/onetomany/TestDataMainRestController.java new file mode 100644 index 0000000000000000000000000000000000000000..58aa691667e7b2a3ee036993ff5dd70f124dda30 --- /dev/null +++ b/JeeSpringCloud/jeespring-web/src/main/java/com/jeespring/modules/test/rest/onetomany/TestDataMainRestController.java @@ -0,0 +1,301 @@ +/** + * * Copyright © 2015-2020 JeeSpringCloud All rights reserved.. + */ +package com.jeespring.modules.test.rest.onetomany; + +import java.util.List; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.apache.shiro.authz.annotation.Logical; +import org.apache.shiro.authz.annotation.RequiresPermissions; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.web.bind.annotation.ModelAttribute; +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.multipart.MultipartFile; +import org.springframework.web.servlet.mvc.support.RedirectAttributes; + +import com.google.common.collect.Lists; +import com.jeespring.common.utils.DateUtils; +import com.jeespring.common.config.Global; +import com.jeespring.common.persistence.Page; +import com.jeespring.common.web.AbstractBaseController; +import com.jeespring.common.utils.StringUtils; +import com.jeespring.common.utils.excel.ExportExcel; +import com.jeespring.common.utils.excel.ImportExcel; +import com.jeespring.modules.test.entity.onetomany.TestDataMain; +import com.jeespring.modules.test.service.onetomany.ITestDataMainService; +import org.springframework.web.bind.annotation.RestController; +import com.jeespring.common.web.Result; +import com.jeespring.common.web.ResultFactory; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiImplicitParams; +import io.swagger.annotations.ApiOperation; +import org.springframework.web.bind.annotation.*; + +/** + * 订票Controller + * @author JeeSpring + * @version 2018-10-12 + */ +@RestController +@RequestMapping(value = "/rest/test/onetomany/testDataMain") +@Api(value="订票接口", description="订票接口") +public class TestDataMainRestController extends AbstractBaseController { + + @Autowired + private ITestDataMainService testDataMainService; + + /** + * 订票信息 + */ + @RequestMapping(value = {"get"},method ={RequestMethod.POST,RequestMethod.GET}) + @ApiOperation(value="订票信息(Content-Type为text/html)", notes="订票信息(Content-Type为text/html)") + @ApiImplicitParam(name = "id", value = "订票id", required = false, dataType = "String",paramType="query") + public Result getRequestParam(@RequestParam(required=false) String id) { + return get(id); + } + + @RequestMapping(value = {"get/json"},method ={RequestMethod.POST}) + @ApiOperation(value="订票信息(Content-Type为application/json)", notes="订票信息(Content-Type为application/json)") + @ApiImplicitParam(name = "id", value = "订票id", required = false, dataType = "String",paramType="body") + public Result getRequestBody(@RequestBody(required=false) String id) { + return get(id); + } + + private Result get(String id) { + TestDataMain entity = null; + if (StringUtils.isNotBlank(id)){ + entity = testDataMainService.getCache(id); + //entity = testDataMainService.get(id); + } + if (entity == null){ + entity = new TestDataMain(); + } + Result result = ResultFactory.getSuccessResult(); + result.setResultObject(entity); + return result; + } + + /** + * 订票列表(不包含页信息) + */ + //RequiresPermissions("test:onetomany:testDataMain:findList") + @RequestMapping(value = {"findList"},method ={RequestMethod.POST,RequestMethod.GET}) + @ApiOperation(value="订票列表(不包含页信息)(Content-Type为text/html)", notes="订票列表(不包含页信息)(Content-Type为text/html)") + @ApiImplicitParam(name = "testDataMain", value = "订票", dataType = "TestDataMain",paramType="query") + public Result findListRequestParam(TestDataMain testDataMain, HttpServletRequest request, HttpServletResponse response, Model model) { + return findList( testDataMain,model); + } + + @RequestMapping(value = {"findList/json"},method ={RequestMethod.POST}) + @ApiOperation(value="订票列表(不包含页信息)(Content-Type为application/json)", notes="订票列表(不包含页信息)(Content-Type为application/json)") + @ApiImplicitParam(name = "testDataMain", value = "订票", dataType = "TestDataMain",paramType="body") + public Result findListRequestBody(@RequestBody TestDataMain testDataMain, Model model) { + return findList( testDataMain,model); + } + + private Result findList(TestDataMain testDataMain, Model model) { + List list = testDataMainService.findListCache(testDataMain); + //List list = testDataMainService.findList(testDataMain); + Result result = ResultFactory.getSuccessResult(); + result.setResultObject(list); + return result; + } + + /** + * 订票列表(包含页信息) + */ + //RequiresPermissions("test:onetomany:testDataMain:list") + @RequestMapping(value = {"list"},method ={RequestMethod.POST,RequestMethod.GET}) + @ApiOperation(value="订票列表(包含页信息)(Content-Type为text/html)", notes="订票列表(包含页信息)(Content-Type为text/html)") + @ApiImplicitParam(name = "testDataMain", value = "订票", dataType = "TestDataMain",paramType="query") + public Result listRequestParam(TestDataMain testDataMain, HttpServletRequest request, HttpServletResponse response, Model model) { + return list(testDataMain,model); + } + + @RequestMapping(value = {"list/json"},method ={RequestMethod.POST}) + @ApiOperation(value="订票列表(包含页信息)(Content-Type为application/json)", notes="订票列表(包含页信息)(Content-Type为application/json)") + @ApiImplicitParam(name = "testDataMain", value = "订票", dataType = "TestDataMain",paramType="body") + public Result listRequestBody(@RequestBody TestDataMain testDataMain, Model model) { + return list(testDataMain,model); + } + + private Result list(TestDataMain testDataMain, Model model) { + Page page = testDataMainService.findPageCache(new Page(testDataMain.getPageNo(),testDataMain.getPageSize(),testDataMain.getOrderBy()), testDataMain); + //Page page = testDataMainService.findPage(new Page(testDataMain.getPageNo(),testDataMain.getPageSize(),testDataMain.getOrderBy()), testDataMain); + Result result = ResultFactory.getSuccessResult(); + result.setResultObject(page); + return result; + } + + /** + * 订票获取列表第一条记录 + */ + //RequiresPermissions("test:onetomany:testDataMain:listFrist") + @RequestMapping(value = {"listFrist"},method ={RequestMethod.POST,RequestMethod.GET}) + @ApiOperation(value="订票获取列表第一条记录(Content-Type为text/html)", notes="订票获取列表第一条记录(Content-Type为text/html)") + @ApiImplicitParam(name = "testDataMain", value = "订票", dataType = "TestDataMain",paramType="query") + public Result listFristRequestParam(TestDataMain testDataMain, HttpServletRequest request, HttpServletResponse response, Model model) { + return listFrist(testDataMain,model); + } + + @RequestMapping(value = {"listFrist/json"},method ={RequestMethod.POST}) + @ApiOperation(value="订票获取列表第一条记录(Content-Type为application/json)", notes="订票获取列表第一条记录(Content-Type为application/json)") + @ApiImplicitParam(name = "testDataMain", value = "订票", dataType = "TestDataMain",paramType="body") + public Result listFristRequestBody(@RequestBody TestDataMain testDataMain, Model model) { + return listFrist(testDataMain,model); + } + + private Result listFrist(TestDataMain testDataMain, Model model) { + Page page = testDataMainService.findPageCache(new Page(testDataMain.getPageNo(),testDataMain.getPageSize(),testDataMain.getOrderBy()), testDataMain); + //Page page = testDataMainService.findPage(new Page(testDataMain.getPageNo(),testDataMain.getPageSize(),testDataMain.getOrderBy()), testDataMain); + Result result = ResultFactory.getSuccessResult(); + if(page.getList().size()>0){ + result.setResultObject(page.getList().get(0)); + }else{ + result=ResultFactory.getErrorResult("没有记录!"); + } + return result; + } + + /** + * 保存订票 + */ + //RequiresPermissions(value={"test:onetomany:testDataMain:add","test:onetomany:testDataMain:edit"},logical=Logical.OR) + @RequestMapping(value = "save",method ={RequestMethod.POST,RequestMethod.GET}) + @ApiOperation(value="保存订票(Content-Type为text/html)", notes="保存订票(Content-Type为text/html)") + @ApiImplicitParam(name = "testDataMain", value = "订票", dataType = "TestDataMain",paramType="query") + public Result saveRequestParam(TestDataMain testDataMain, Model model, RedirectAttributes redirectAttributes) { + return save(testDataMain,model,redirectAttributes); + } + + @RequestMapping(value = "save/json",method ={RequestMethod.POST}) + @ApiOperation(value="保存订票(Content-Type为application/json)", notes="保存订票(Content-Type为application/json)") + @ApiImplicitParam(name = "testDataMain", value = "订票", dataType = "TestDataMain",paramType="body") + public Result saveRequestBody(@RequestBody TestDataMain testDataMain, Model model, RedirectAttributes redirectAttributes) { + return save(testDataMain,model,redirectAttributes); + } + + private Result save(TestDataMain testDataMain, Model model, RedirectAttributes redirectAttributes) { + if (!beanValidator(model, testDataMain)){ + Result result = ResultFactory.getErrorResult("数据验证失败"); + } + testDataMainService.save(testDataMain); + Result result = ResultFactory.getSuccessResult("保存订票成功"); + return result; + } + + /** + * 删除订票 + */ + //RequiresPermissions("test:onetomany:testDataMain:del") + @RequestMapping(value = "delete",method ={RequestMethod.POST,RequestMethod.GET}) + @ApiOperation(value="删除订票(Content-Type为text/html)", notes="删除订票(Content-Type为text/html)") + @ApiImplicitParam(name = "testDataMain", value = "订票", dataType = "TestDataMain",paramType="query") + public Result deleteRequestParam(TestDataMain testDataMain, RedirectAttributes redirectAttributes) { + return delete(testDataMain,redirectAttributes); + } + + @RequestMapping(value = "delete/json",method ={RequestMethod.POST}) + @ApiOperation(value="删除订票(Content-Type为application/json)", notes="删除订票(Content-Type为application/json)") + @ApiImplicitParam(name = "testDataMain", value = "订票", dataType = "TestDataMain",paramType="body") + public Result deleteRequestBody(@RequestBody TestDataMain testDataMain, RedirectAttributes redirectAttributes) { + return delete(testDataMain,redirectAttributes); + } + + private Result delete(TestDataMain testDataMain, RedirectAttributes redirectAttributes) { + testDataMainService.delete(testDataMain); + Result result = ResultFactory.getSuccessResult("删除订票成功"); + return result; + } + + /** + * 删除订票(逻辑删除,更新del_flag字段为1,在表包含字段del_flag时,可以调用此方法,将数据隐藏) + */ + @RequestMapping(value = "deleteByLogic",method ={RequestMethod.POST,RequestMethod.GET}) + @ApiOperation(value="逻辑删除订票(Content-Type为text/html)", notes="逻辑删除订票(Content-Type为text/html)") + @ApiImplicitParam(name = "testDataMain", value = "订票", dataType = "TestDataMain",paramType="query") + public Result deleteByLogicRequestParam(TestDataMain testDataMain, RedirectAttributes redirectAttributes) { + return deleteByLogic(testDataMain,redirectAttributes); + } + + /** + * 删除订票(逻辑删除,更新del_flag字段为1,在表包含字段del_flag时,可以调用此方法,将数据隐藏) + */ + @RequestMapping(value = "deleteByLogic/json",method ={RequestMethod.POST}) + @ApiOperation(value="逻辑删除订票(Content-Type为application/json)", notes="逻辑删除订票(Content-Type为application/json)") + @ApiImplicitParam(name = "testDataMain", value = "订票", dataType = "TestDataMain",paramType="body") + public Result deleteByLogicRequestBody(@RequestBody TestDataMain testDataMain, RedirectAttributes redirectAttributes) { + return deleteByLogic(testDataMain,redirectAttributes); + } + + private Result deleteByLogic(TestDataMain testDataMain, RedirectAttributes redirectAttributes) { + testDataMainService.deleteByLogic(testDataMain); + Result result = ResultFactory.getSuccessResult("删除订票成功"); + return result; + } + + /** + * 批量删除订票 + */ + //RequiresPermissions("test:onetomany:testDataMain:del") + @RequestMapping(value = "deleteAll",method ={RequestMethod.POST,RequestMethod.GET}) + @ApiOperation(value="批量删除订票(Content-Type为text/html)", notes="批量删除订票(Content-Type为text/html)") + @ApiImplicitParam(name = "ids", value = "订票ids,用,隔开", required = false, dataType = "String",paramType="query") + public Result deleteAllRequestParam(String ids, RedirectAttributes redirectAttributes) { + return deleteAll(ids,redirectAttributes); + } + + @RequestMapping(value = "deleteAll/json",method ={RequestMethod.POST}) + @ApiOperation(value="批量删除订票(Content-Type为application/json)", notes="批量删除订票(Content-Type为application/json)") + @ApiImplicitParam(name = "ids", value = "订票ids,用,隔开", required = false, dataType = "String",paramType="body") + public Result deleteAllRequestBody(@RequestBody String ids, RedirectAttributes redirectAttributes) { + return deleteAll(ids,redirectAttributes); + } + + private Result deleteAll(String ids, RedirectAttributes redirectAttributes) { + String[] idArray = ids.split(","); + for(String id : idArray){ + testDataMainService.delete(testDataMainService.get(id)); + } + Result result = ResultFactory.getSuccessResult("删除订票成功"); + return result; + } + + /** + * 批量删除订票(逻辑删除,更新del_flag字段为1,在表包含字段del_flag时,可以调用此方法,将数据隐藏) + */ + @RequestMapping(value = "deleteAllByLogic",method ={RequestMethod.POST,RequestMethod.GET}) + @ApiOperation(value="逻辑批量删除订票(Content-Type为text/html)", notes="逻辑批量删除订票(Content-Type为text/html)") + @ApiImplicitParam(name = "ids", value = "订票ids,用,隔开", required = false, dataType = "String",paramType="query") + public Result deleteAllByLogicRequestParam(String ids, RedirectAttributes redirectAttributes) { + return deleteAllByLogic(ids,redirectAttributes); + } + + /** + * 批量删除订票(逻辑删除,更新del_flag字段为1,在表包含字段del_flag时,可以调用此方法,将数据隐藏) + */ + @RequestMapping(value = "deleteAllByLogic/json",method ={RequestMethod.POST}) + @ApiOperation(value="逻辑批量删除订票(Content-Type为application/json)", notes="逻辑批量删除订票(Content-Type为application/json)") + @ApiImplicitParam(name = "ids", value = "订票ids,用,隔开", required = false, dataType = "String",paramType="body") + public Result deleteAllByLogicRequestBody(@RequestBody String ids, RedirectAttributes redirectAttributes) { + return deleteAllByLogic(ids,redirectAttributes); + } + + private Result deleteAllByLogic(String ids, RedirectAttributes redirectAttributes) { + String[] idArray = ids.split(","); + for(String id : idArray){ + testDataMainService.deleteByLogic(testDataMainService.get(id)); + } + Result result = ResultFactory.getSuccessResult("删除订票成功"); + return result; + } + +} \ No newline at end of file diff --git a/JeeSpringCloud/jeespring-web/src/main/java/com/jeespring/modules/test/service/one/FormLeaveService.java b/JeeSpringCloud/jeespring-web/src/main/java/com/jeespring/modules/test/service/one/FormLeaveService.java new file mode 100644 index 0000000000000000000000000000000000000000..aa2a302e6f6ecaa256d23a3e81585c841307213c --- /dev/null +++ b/JeeSpringCloud/jeespring-web/src/main/java/com/jeespring/modules/test/service/one/FormLeaveService.java @@ -0,0 +1,192 @@ +/** + * * Copyright © 2015-2020 JeeSpringCloud All rights reserved.. + */ +package com.jeespring.modules.test.service.one; + +import java.util.List; + +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.beans.factory.annotation.Autowired; + +import com.jeespring.common.persistence.Page; +import com.jeespring.common.service.AbstractBaseService; +import com.jeespring.modules.test.entity.one.FormLeave; +import com.jeespring.modules.test.dao.one.FormLeaveDao; +import com.jeespring.modules.test.service.one.IFormLeaveService; +import com.alibaba.fastjson.JSON; +import com.jeespring.common.redis.RedisUtils; +import com.jeespring.common.security.MD5Tools; +//import com.alibaba.dubbo.config.annotation.Service; +import com.jeespring.common.config.Global; + +/** + * 请假Service + * @author JeeSpring + * @version 2018-10-12 + */ + //启用dubbo服务器时,要去掉下面注解 + //com.alibaba.dubbo.config.annotation.Service(interfaceClass = ISysServerService.class,version = "1.0.0", timeout = 60000) +@org.springframework.stereotype.Service +@Transactional(readOnly = true) +public class FormLeaveService extends AbstractBaseService implements IFormLeaveService{ + + /** + * redis caches + */ + @Autowired + private RedisUtils redisUtils; + + @Override + public FormLeave get(String id) { + //获取数据库数据 + FormLeave formLeave=super.get(id); + return formLeave; + } + + @Override + public FormLeave getCache(String id) { + //获取缓存数据 + FormLeave formLeave=(FormLeave)redisUtils.get(RedisUtils.getIdKey(FormLeaveService.class.getName(),id)); + if( formLeave!=null) { + return formLeave; + } + //获取数据库数据 + formLeave=super.get(id); + //设置缓存数据 + redisUtils.set(RedisUtils.getIdKey(FormLeaveService.class.getName(),id),formLeave); + return formLeave; + } + + @Override + public List total(FormLeave formLeave) { + //获取数据库数据 + List formLeaveList=super.total(formLeave); + return formLeaveList; + } + + @Override + public List totalCache(FormLeave formLeave) { + //获取缓存数据 + String totalKey = RedisUtils.getTotalKey(FormLeaveService.class.getName(),JSON.toJSONString(formLeave)); + List formLeaveList=(List)redisUtils.get(totalKey); + if(formLeaveList!=null) { + return formLeaveList; + } + //获取数据库数据 + formLeaveList=super.total(formLeave); + //设置缓存数据 + redisUtils.set(totalKey,formLeaveList); + return formLeaveList; + } + + @Override + public List findList(FormLeave formLeave) { + //获取数据库数据 + List formLeaveList=super.findList(formLeave); + //设置缓存数据 + return formLeaveList; + } + + @Override + public List findListCache(FormLeave formLeave) { + //获取缓存数据 + String findListKey = RedisUtils.getFindListKey(FormLeaveService.class.getName(),JSON.toJSONString(formLeave)); + List formLeaveList=(List)redisUtils.get(findListKey); + if(formLeaveList!=null) { + return formLeaveList; + } + //获取数据库数据 + formLeaveList=super.findList(formLeave); + //设置缓存数据 + redisUtils.set(findListKey,formLeaveList); + return formLeaveList; + } + + public FormLeave findListFirst(FormLeave formLeave) {; + //获取数据库数据 + List formLeaveList=super.findList(formLeave); + if(formLeaveList.size()>0) { + formLeave = formLeaveList.get(0); + } + return formLeave; + } + + public FormLeave findListFirstCache(FormLeave formLeave) { + //获取缓存数据 + String findListFirstKey = RedisUtils.getFindListFirstKey(FormLeaveService.class.getName(),JSON.toJSONString(formLeave)); + FormLeave formLeaveRedis=(FormLeave)redisUtils.get(findListFirstKey); + if(formLeaveRedis!=null) { + return formLeaveRedis; + } + //获取数据库数据 + List formLeaveList=super.findList(formLeave); + if(formLeaveList.size()>0) { + formLeave = formLeaveList.get(0); + } else { + formLeave = new FormLeave(); + } + //设置缓存数据 + redisUtils.set(findListFirstKey,formLeave); + return formLeave; + } + + @Override + public Page findPage(Page page, FormLeave formLeave) { + //获取数据库数据 + Page pageReuslt=super.findPage(page, formLeave); + return pageReuslt; + } + + @Override + public Page findPageCache(Page page, FormLeave formLeave) { + //获取缓存数据 + String findPageKey = RedisUtils.getFindPageKey(FormLeaveService.class.getName(),JSON.toJSONString(page)+JSON.toJSONString(formLeave)); + Page pageReuslt=(Page)redisUtils.get(findPageKey); + if(pageReuslt!=null) { + return pageReuslt; + } + //获取数据库数据 + pageReuslt=super.findPage(page, formLeave); + //设置缓存数据 + redisUtils.set(findPageKey,pageReuslt); + return pageReuslt; + } + + @Override + @Transactional(readOnly = false) + public void save(FormLeave formLeave) { + //保存数据库记录 + super.save(formLeave); + //设置清除缓存数据 + redisUtils.remove(RedisUtils.getIdKey(FormLeaveService.class.getName(),formLeave.getId())); + //清除列表和页面缓存数据 + redisUtils.removePattern(RedisUtils.getFindListKeyPattern(FormLeaveService.class.getName())); + redisUtils.removePattern(RedisUtils.getFinPageKeyPattern(FormLeaveService.class.getName())); + } + + @Override + @Transactional(readOnly = false) + public void delete(FormLeave formLeave) { + //清除记录缓存数据 + redisUtils.remove(RedisUtils.getIdKey(FormLeaveService.class.getName(),formLeave.getId())); + //删除数据库记录 + super.delete(formLeave); + //清除列表和页面缓存数据 + redisUtils.removePattern(RedisUtils.getFindListKeyPattern(FormLeaveService.class.getName())); + redisUtils.removePattern(RedisUtils.getFinPageKeyPattern(FormLeaveService.class.getName())); + } + + @Override + @Transactional(readOnly = false) + public void deleteByLogic(FormLeave formLeave) { + //清除记录缓存数据 + redisUtils.remove(RedisUtils.getIdKey(FormLeaveService.class.getName(),formLeave.getId())); + //逻辑删除数据库记录 + super.deleteByLogic(formLeave); + //清除列表和页面缓存数据 + redisUtils.removePattern(RedisUtils.getFindListKeyPattern(FormLeaveService.class.getName())); + redisUtils.removePattern(RedisUtils.getFinPageKeyPattern(FormLeaveService.class.getName())); + } + +} \ No newline at end of file diff --git a/JeeSpringCloud/jeespring-web/src/main/java/com/jeespring/modules/test/service/one/IFormLeaveService.java b/JeeSpringCloud/jeespring-web/src/main/java/com/jeespring/modules/test/service/one/IFormLeaveService.java new file mode 100644 index 0000000000000000000000000000000000000000..c81abc0c6f8709011ee6fe1b9543cb24f48ee2d8 --- /dev/null +++ b/JeeSpringCloud/jeespring-web/src/main/java/com/jeespring/modules/test/service/one/IFormLeaveService.java @@ -0,0 +1,16 @@ +/** + * * Copyright © 2015-2020 JeeSpringCloud All rights reserved.. + */ +package com.jeespring.modules.test.service.one; + +import com.jeespring.common.persistence.InterfaceBaseService; +import com.jeespring.modules.server.entity.SysServer; +import com.jeespring.modules.test.entity.one.FormLeave; + +/** + * I请假Service + * @author JeeSpring + * @version 2018-10-12 + */ +public interface IFormLeaveService extends InterfaceBaseService { +} \ No newline at end of file diff --git a/JeeSpringCloud/jeespring-web/src/main/java/com/jeespring/modules/test/service/onetomany/ITestDataMainService.java b/JeeSpringCloud/jeespring-web/src/main/java/com/jeespring/modules/test/service/onetomany/ITestDataMainService.java new file mode 100644 index 0000000000000000000000000000000000000000..2665bdd289aa198f83de1af24bb1282572a27c15 --- /dev/null +++ b/JeeSpringCloud/jeespring-web/src/main/java/com/jeespring/modules/test/service/onetomany/ITestDataMainService.java @@ -0,0 +1,16 @@ +/** + * * Copyright © 2015-2020 JeeSpringCloud All rights reserved.. + */ +package com.jeespring.modules.test.service.onetomany; + +import com.jeespring.common.persistence.InterfaceBaseService; +import com.jeespring.modules.server.entity.SysServer; +import com.jeespring.modules.test.entity.onetomany.TestDataMain; + +/** + * I订票Service + * @author JeeSpring + * @version 2018-10-12 + */ +public interface ITestDataMainService extends InterfaceBaseService { +} \ No newline at end of file diff --git a/JeeSpringCloud/jeespring-web/src/main/java/com/jeespring/modules/test/service/onetomany/TestDataMainService.java b/JeeSpringCloud/jeespring-web/src/main/java/com/jeespring/modules/test/service/onetomany/TestDataMainService.java new file mode 100644 index 0000000000000000000000000000000000000000..13ae415d5acc2601c0e8580bbb5e8f5f7dc29e26 --- /dev/null +++ b/JeeSpringCloud/jeespring-web/src/main/java/com/jeespring/modules/test/service/onetomany/TestDataMainService.java @@ -0,0 +1,280 @@ +/** + * * Copyright © 2015-2020 JeeSpringCloud All rights reserved.. + */ +package com.jeespring.modules.test.service.onetomany; + +import java.util.List; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import com.jeespring.common.persistence.Page; +import com.jeespring.common.service.AbstractBaseService; +import com.jeespring.common.utils.StringUtils; +import com.alibaba.fastjson.JSON; +import com.jeespring.common.redis.RedisUtils; +import com.jeespring.common.security.MD5Tools; +import com.jeespring.modules.test.entity.onetomany.TestDataMain; +import com.jeespring.modules.test.dao.onetomany.TestDataMainDao; +import com.jeespring.modules.test.entity.onetomany.TestDataChild; +import com.jeespring.modules.test.dao.onetomany.TestDataChildDao; +import com.jeespring.modules.test.entity.onetomany.TestDataChild2; +import com.jeespring.modules.test.dao.onetomany.TestDataChild2Dao; +import com.jeespring.modules.test.entity.onetomany.TestDataChild3; +import com.jeespring.modules.test.dao.onetomany.TestDataChild3Dao; +//import com.alibaba.dubbo.config.annotation.Service; +import com.jeespring.common.config.Global; + +/** + * 订票Service + * @author JeeSpring + * @version 2018-10-12 + */ + //com.alibaba.dubbo.config.annotation.Service(interfaceClass = ISysServerService.class,version = "1.0.0", timeout = 60000) +@org.springframework.stereotype.Service +@Transactional(readOnly = true) +public class TestDataMainService extends AbstractBaseService implements ITestDataMainService{ + + /** + * redis caches + */ + @Autowired + private RedisUtils redisUtils; + + @Autowired + private TestDataChildDao testDataChildDao; + @Autowired + private TestDataChild2Dao testDataChild2Dao; + @Autowired + private TestDataChild3Dao testDataChild3Dao; + + @Override + public TestDataMain get(String id) { + //获取数据库数据 + TestDataMain testDataMain = super.get(id); + if(testDataMain ==null) { + return new TestDataMain(); + } + testDataMain.setTestDataChildList(testDataChildDao.findList(new TestDataChild(testDataMain))); + testDataMain.setTestDataChild2List(testDataChild2Dao.findList(new TestDataChild2(testDataMain))); + testDataMain.setTestDataChild3List(testDataChild3Dao.findList(new TestDataChild3(testDataMain))); + return testDataMain; + } + + @Override + public TestDataMain getCache(String id) { + //获取缓存数据 + TestDataMain testDataMain=(TestDataMain)redisUtils.get(RedisUtils.getIdKey(TestDataMainService.class.getName(),id)); + if( testDataMain!=null) { + return testDataMain; + } + //获取数据库数据 + testDataMain = super.get(id); + if(testDataMain ==null) { + return new TestDataMain(); + } + testDataMain.setTestDataChildList(testDataChildDao.findList(new TestDataChild(testDataMain))); + testDataMain.setTestDataChild2List(testDataChild2Dao.findList(new TestDataChild2(testDataMain))); + testDataMain.setTestDataChild3List(testDataChild3Dao.findList(new TestDataChild3(testDataMain))); + //设置缓存数据 + redisUtils.set(RedisUtils.getIdKey(TestDataMainService.class.getName(),id),testDataMain); + return testDataMain; + } + + @Override + public List total(TestDataMain testDataMain) { + //获取数据库数据 + List testDataMainList=super.total(testDataMain); + return testDataMainList; + } + + @Override + public List totalCache(TestDataMain testDataMain) { + //获取缓存数据 + String totalKey = RedisUtils.getTotalKey(TestDataMainService.class.getName(),JSON.toJSONString(testDataMain)); + List testDataMainList=(List)redisUtils.get(totalKey); + if(testDataMainList!=null) { + return testDataMainList; + } + //获取数据库数据 + testDataMainList=super.total(testDataMain); + //设置缓存数据 + redisUtils.set(totalKey,testDataMainList); + return testDataMainList; + } + + public TestDataMain findListFirst(TestDataMain testDataMain) { + //获取数据库数据 + List testDataMainList=super.findList(testDataMain); + if(testDataMainList.size()>0) { + testDataMain = testDataMainList.get(0); + } + return testDataMain; + } + + public TestDataMain findListFirstCache(TestDataMain testDataMain) { + //获取缓存数据 + String findListFirstKey = RedisUtils.getFindListFirstKey(TestDataMainService.class.getName(),JSON.toJSONString(testDataMain)); + TestDataMain testDataMainRedis=(TestDataMain)redisUtils.get(findListFirstKey); + if(testDataMainRedis!=null) { + return testDataMainRedis; + } + //获取数据库数据 + List testDataMainList=super.findList(testDataMain); + if(testDataMainList.size()>0) { + testDataMain = testDataMainList.get(0); + } else { + testDataMain = new TestDataMain(); + } + //设置缓存数据 + redisUtils.set(findListFirstKey,testDataMain); + return testDataMain; + } + + @Override + public List findList(TestDataMain testDataMain) { + //获取缓存数据 + String findListKey = RedisUtils.getFindListKey(TestDataMainService.class.getName(),JSON.toJSONString(testDataMain)); + List testDataMainList=(List)redisUtils.get(findListKey); + if(testDataMainList!=null) { + return testDataMainList; + } + //获取数据库数据 + testDataMainList=super.findList(testDataMain); + //设置缓存数据 + redisUtils.set(findListKey,testDataMainList); + return testDataMainList; + } + + @Override + public List findListCache(TestDataMain testDataMain) { + //获取缓存数据 + String findListKey = RedisUtils.getFindListKey(TestDataMainService.class.getName(),JSON.toJSONString(testDataMain)); + List testDataMainList=(List)redisUtils.get(findListKey); + if(testDataMainList!=null) { + return testDataMainList; + } + //获取数据库数据 + testDataMainList=super.findList(testDataMain); + //设置缓存数据 + redisUtils.set(findListKey,testDataMainList); + return testDataMainList; + } + + @Override + public Page findPage(Page page, TestDataMain testDataMain) { + //获取数据库数据 + Page pageReuslt=super.findPage(page, testDataMain); + return pageReuslt; + } + + @Override + public Page findPageCache(Page page, TestDataMain testDataMain) { + //获取缓存数据 + String findPageKey = RedisUtils.getFindPageKey(TestDataMainService.class.getName(),JSON.toJSONString(page)+JSON.toJSONString(testDataMain)); + Page pageReuslt=(Page)redisUtils.get(findPageKey); + if(pageReuslt!=null) { + return pageReuslt; + } + //获取数据库数据 + pageReuslt=super.findPage(page, testDataMain); + //设置缓存数据 + redisUtils.set(findPageKey,pageReuslt); + return pageReuslt; + } + + @Override + @Transactional(readOnly = false) + public void save(TestDataMain testDataMain) { + //保存数据库记录 + super.save(testDataMain); + for (TestDataChild testDataChild : testDataMain.getTestDataChildList()){ + if (testDataChild.getId() == null){ + continue; + } + if (TestDataChild.DEL_FLAG_NORMAL.equals(testDataChild.getDelFlag())){ + if (StringUtils.isBlank(testDataChild.getId())){ + testDataChild.setTestDataMain(testDataMain); + testDataChild.preInsert(); + testDataChildDao.insert(testDataChild); + }else{ + testDataChild.preUpdate(); + testDataChildDao.update(testDataChild); + } + }else{ + testDataChildDao.delete(testDataChild); + } + } + for (TestDataChild2 testDataChild2 : testDataMain.getTestDataChild2List()){ + if (testDataChild2.getId() == null){ + continue; + } + if (TestDataChild2.DEL_FLAG_NORMAL.equals(testDataChild2.getDelFlag())){ + if (StringUtils.isBlank(testDataChild2.getId())){ + testDataChild2.setTestDataMain(testDataMain); + testDataChild2.preInsert(); + testDataChild2Dao.insert(testDataChild2); + }else{ + testDataChild2.preUpdate(); + testDataChild2Dao.update(testDataChild2); + } + }else{ + testDataChild2Dao.delete(testDataChild2); + } + } + for (TestDataChild3 testDataChild3 : testDataMain.getTestDataChild3List()){ + if (testDataChild3.getId() == null){ + continue; + } + if (TestDataChild3.DEL_FLAG_NORMAL.equals(testDataChild3.getDelFlag())){ + if (StringUtils.isBlank(testDataChild3.getId())){ + testDataChild3.setTestDataMain(testDataMain); + testDataChild3.preInsert(); + testDataChild3Dao.insert(testDataChild3); + }else{ + testDataChild3.preUpdate(); + testDataChild3Dao.update(testDataChild3); + } + }else{ + testDataChild3Dao.delete(testDataChild3); + } + } + //设置清除缓存数据 + redisUtils.remove(RedisUtils.getIdKey(TestDataMainService.class.getName(),testDataMain.getId())); + //清除列表和页面缓存数据 + redisUtils.removePattern(RedisUtils.getFindListKeyPattern(TestDataMainService.class.getName())); + redisUtils.removePattern(RedisUtils.getFinPageKeyPattern(TestDataMainService.class.getName())); + } + + @Override + @Transactional(readOnly = false) + public void delete(TestDataMain testDataMain) { + //清除记录缓存数据 + redisUtils.remove(RedisUtils.getIdKey(TestDataMainService.class.getName(),testDataMain.getId())); + //删除数据库记录 + super.delete(testDataMain); + testDataChildDao.delete(new TestDataChild(testDataMain)); + testDataChild2Dao.delete(new TestDataChild2(testDataMain)); + testDataChild3Dao.delete(new TestDataChild3(testDataMain)); + //清除列表和页面缓存数据 + redisUtils.removePattern(RedisUtils.getFindListKeyPattern(TestDataMainService.class.getName())); + redisUtils.removePattern(RedisUtils.getFinPageKeyPattern(TestDataMainService.class.getName())); + } + + @Override + @Transactional(readOnly = false) + public void deleteByLogic(TestDataMain testDataMain) { + //清除记录缓存数据 + redisUtils.remove(RedisUtils.getIdKey(TestDataMainService.class.getName(),testDataMain.getId())); + //逻辑删除数据库记录 + super.deleteByLogic(testDataMain); + testDataChildDao.deleteByLogic(new TestDataChild(testDataMain)); + testDataChild2Dao.deleteByLogic(new TestDataChild2(testDataMain)); + testDataChild3Dao.deleteByLogic(new TestDataChild3(testDataMain)); + //清除列表和页面缓存数据 + redisUtils.removePattern(RedisUtils.getFindListKeyPattern(TestDataMainService.class.getName())); + redisUtils.removePattern(RedisUtils.getFinPageKeyPattern(TestDataMainService.class.getName())); + } + +} \ No newline at end of file diff --git a/JeeSpringCloud/jeespring-web/src/main/java/com/jeespring/modules/test/service/tree/TestTreeService.java b/JeeSpringCloud/jeespring-web/src/main/java/com/jeespring/modules/test/service/tree/TestTreeService.java new file mode 100644 index 0000000000000000000000000000000000000000..69089bc639dfaf793c987699f891b15790c16cf7 --- /dev/null +++ b/JeeSpringCloud/jeespring-web/src/main/java/com/jeespring/modules/test/service/tree/TestTreeService.java @@ -0,0 +1,50 @@ +/** + * * Copyright © 2015-2020 JeeSpringCloud All rights reserved.. + */ +package com.jeespring.modules.test.service.tree; + +import java.util.List; + +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import com.jeespring.common.service.TreeService; +import com.jeespring.common.utils.StringUtils; +import com.jeespring.modules.test.entity.tree.TestTree; +import com.jeespring.modules.test.dao.tree.TestTreeDao; + +/** + * 树Service + * @author JeeSpring + * @version 2018-10-11 + */ +@Service +@Transactional(readOnly = true) +public class TestTreeService extends TreeService { + + @Override + public TestTree get(String id) { + return super.get(id); + } + + @Override + public List findList(TestTree testTree) { + if (StringUtils.isNotBlank(testTree.getParentIds())){ + testTree.setParentIds(","+testTree.getParentIds()+","); + } + return super.findList(testTree); + } + + @Override + @Transactional(readOnly = false) + public void save(TestTree testTree) { + super.save(testTree); + } + + @Override + @Transactional(readOnly = false) + public void delete(TestTree testTree) { + super.delete(testTree); + } + +} \ No newline at end of file diff --git a/JeeSpringCloud/jeespring-web/src/main/java/com/jeespring/modules/test/web/one/FormLeaveController.java b/JeeSpringCloud/jeespring-web/src/main/java/com/jeespring/modules/test/web/one/FormLeaveController.java new file mode 100644 index 0000000000000000000000000000000000000000..77099f4df826f127812662bb15c2d88389e69de9 --- /dev/null +++ b/JeeSpringCloud/jeespring-web/src/main/java/com/jeespring/modules/test/web/one/FormLeaveController.java @@ -0,0 +1,293 @@ +/** + * * Copyright © 2015-2020 JeeSpringCloud All rights reserved.. + */ +package com.jeespring.modules.test.web.one; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.apache.shiro.authz.annotation.Logical; +import org.apache.shiro.authz.annotation.RequiresPermissions; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.web.bind.annotation.ModelAttribute; +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.multipart.MultipartFile; +import org.springframework.web.servlet.mvc.support.RedirectAttributes; + +import com.google.common.collect.Lists; +import com.jeespring.common.utils.DateUtils; +import com.jeespring.common.config.Global; +import com.jeespring.common.persistence.Page; +import com.jeespring.common.web.AbstractBaseController; +import com.jeespring.common.utils.StringUtils; +import com.jeespring.common.utils.excel.ExportExcel; +import com.jeespring.common.utils.excel.ImportExcel; +import com.jeespring.modules.test.entity.one.FormLeave; +import com.jeespring.modules.test.service.one.FormLeaveService; +import com.jeespring.modules.test.service.one.IFormLeaveService; +import com.alibaba.dubbo.config.annotation.Reference; + +/** + * 请假Controller + * @author JeeSpring + * @version 2018-10-12 + */ +@Controller +@RequestMapping(value = "${adminPath}/test/one/formLeave") +public class FormLeaveController extends AbstractBaseController { + + //调用dubbo服务器是,要去Reference注解,注解Autowired + //@Reference(version = "1.0.0") + @Autowired + private IFormLeaveService formLeaveService; + + @ModelAttribute + public FormLeave get(@RequestParam(required=false) String id) { + FormLeave entity = null; + if (StringUtils.isNotBlank(id)){ + entity = formLeaveService.getCache(id); + //entity = formLeaveService.get(id); + } + if (entity == null){ + entity = new FormLeave(); + } + return entity; + } + + /** + * 请假统计页面 + */ + @RequiresPermissions("test:one:formLeave:total") + @RequestMapping(value = {"total"}) + public String totalView(FormLeave formLeave, HttpServletRequest request, HttpServletResponse response, Model model) { + total(formLeave,request,response,model); + return "modules/test/one/formLeaveTotal"; + } + private void total(FormLeave formLeave, HttpServletRequest request, HttpServletResponse response, Model model) { + if(StringUtils.isEmpty(formLeave.getTotalType())){ + formLeave.setTotalType("%Y-%m-%d"); + } + //X轴的数据 + List xAxisData= new ArrayList(); + //Y轴的数据 + Map> yAxisData = new HashMap>(); + List countList = new ArrayList(); + List sumList = new ArrayList(); + if(formLeave.getOrderBy()==""){ + formLeave.setOrderBy("totalDate"); + } + List list = formLeaveService.totalCache(formLeave); + //List list = formLeaveService.total(formLeave); + model.addAttribute("list", list); + for(FormLeave formLeaveItem:list){ + //x轴数据 + xAxisData.add( formLeaveItem.getTotalDate()); + countList.add(Double.valueOf(formLeaveItem.getTotalCount())); + } + yAxisData.put("数量", countList); + request.setAttribute("xAxisData", xAxisData); + request.setAttribute("yAxisData", yAxisData); + model.addAttribute("sumTotalCount", list.stream().mapToInt(FormLeave::getTotalCount).sum()); + + //饼图数据 + Map orientData= new HashMap(); + for(FormLeave formLeaveItem:list){ + orientData.put(formLeaveItem.getTotalDate(), formLeaveItem.getTotalCount()); + } + model.addAttribute("orientData", orientData); + } + @RequiresPermissions("test:one:formLeave:total") + @RequestMapping(value = {"totalMap"}) + public String totalMap(FormLeave formLeave, HttpServletRequest request, HttpServletResponse response, Model model) { + if(StringUtils.isEmpty(formLeave.getTotalType())){ + formLeave.setTotalType("%Y-%m-%d"); + } + List list = formLeaveService.totalCache(formLeave); + //List list = formLeaveService.total(formLeave); + model.addAttribute("sumTotalCount", list.stream().mapToInt(FormLeave::getTotalCount).sum()); + model.addAttribute("list", list); + return "modules/test/one/formLeaveTotalMap"; + } + + /** + * 请假列表页面 + */ + @RequiresPermissions("test:one:formLeave:list") + @RequestMapping(value = {"list", ""}) + public String list(FormLeave formLeave, HttpServletRequest request, HttpServletResponse response, Model model) { + Page page = formLeaveService.findPageCache(new Page(request, response), formLeave); + //Page page = formLeaveService.findPage(new Page(request, response), formLeave); + model.addAttribute("page", page); + formLeave.setOrderBy("totalDate"); + total(formLeave,request,response,model); + return "modules/test/one/formLeaveList"; + } + + /** + * 请假列表页面 + */ + @RequiresPermissions("test:one:formLeave:list") + @RequestMapping(value = {"listVue"}) + public String listVue(FormLeave formLeave, HttpServletRequest request, HttpServletResponse response, Model model) { + Page page = formLeaveService.findPageCache(new Page(request, response), formLeave); + //Page page = formLeaveService.findPage(new Page(request, response), formLeave); + model.addAttribute("page", page); + return "modules/test/one/formLeaveListVue"; + } + + /** + * 请假列表页面 + */ + //RequiresPermissions("test:one:formLeave:select") + @RequestMapping(value = {"select"}) + public String select(FormLeave formLeave, HttpServletRequest request, HttpServletResponse response, Model model) { + Page page = formLeaveService.findPageCache(new Page(request, response), formLeave); + //Page page = formLeaveService.findPage(new Page(request, response), formLeave); + model.addAttribute("page", page); + return "modules/test/one/formLeaveSelect"; + } + + /** + * 查看,增加,编辑请假表单页面 + */ + @RequiresPermissions(value={"test:one:formLeave:view","test:one:formLeave:add","test:one:formLeave:edit"},logical=Logical.OR) + @RequestMapping(value = "form") + public String form(FormLeave formLeave, Model model, HttpServletRequest request, HttpServletResponse response) { + model.addAttribute("action", request.getParameter("action")); + model.addAttribute("formLeave", formLeave); + if(request.getParameter("ViewFormType")!=null && "FormTwo".equals(request.getParameter("ViewFormType"))) { + return "modules/test/one/formLeaveFormTwo"; + } + return "modules/test/one/formLeaveForm"; + } + + /** + * 保存请假 + */ + @RequiresPermissions(value={"test:one:formLeave:add","test:one:formLeave:edit"},logical=Logical.OR) + @RequestMapping(value = "save") + public String save(FormLeave formLeave, Model model, RedirectAttributes redirectAttributes, HttpServletRequest request, HttpServletResponse response) { + if (!beanValidator(model, formLeave)){ + return form(formLeave, model,request,response); + } + formLeaveService.save(formLeave); + addMessage(redirectAttributes, "保存请假成功"); + return "redirect:"+Global.getAdminPath()+"/test/one/formLeave/?repage"; + } + + /** + * 删除请假 + */ + @RequiresPermissions("test:one:formLeave:del") + @RequestMapping(value = "delete") + public String delete(FormLeave formLeave, RedirectAttributes redirectAttributes) { + formLeaveService.delete(formLeave); + addMessage(redirectAttributes, "删除请假成功"); + return "redirect:"+Global.getAdminPath()+"/test/one/formLeave/?repage"; + } + + /** + * 删除请假(逻辑删除,更新del_flag字段为1,在表包含字段del_flag时,可以调用此方法,将数据隐藏) + */ + @RequiresPermissions(value={"test:one:formLeave:del","test:one:formLeave:delByLogic"},logical=Logical.OR) + @RequestMapping(value = "deleteByLogic") + public String deleteByLogic(FormLeave formLeave, RedirectAttributes redirectAttributes) { + formLeaveService.deleteByLogic(formLeave); + addMessage(redirectAttributes, "逻辑删除请假成功"); + return "redirect:"+Global.getAdminPath()+"/test/one/formLeave/?repage"; + } + + /** + * 批量删除请假 + */ + @RequiresPermissions("test:one:formLeave:del") + @RequestMapping(value = "deleteAll") + public String deleteAll(String ids, RedirectAttributes redirectAttributes) { + String[] idArray = ids.split(","); + for(String id : idArray){ + formLeaveService.delete(formLeaveService.get(id)); + } + addMessage(redirectAttributes, "删除请假成功"); + return "redirect:"+Global.getAdminPath()+"/test/one/formLeave/?repage"; + } + + /** + * 批量删除请假(逻辑删除,更新del_flag字段为1,在表包含字段del_flag时,可以调用此方法,将数据隐藏) + */ + @RequiresPermissions(value={"test:one:formLeave:del","test:one:formLeave:delByLogic"},logical=Logical.OR) + @RequestMapping(value = "deleteAllByLogic") + public String deleteAllByLogic(String ids, RedirectAttributes redirectAttributes) { + String[] idArray = ids.split(","); + for(String id : idArray){ + formLeaveService.deleteByLogic(formLeaveService.get(id)); + } + addMessage(redirectAttributes, "删除请假成功"); + return "redirect:"+Global.getAdminPath()+"/test/one/formLeave/?repage"; + } + + /** + * 导出excel文件 + */ + @RequiresPermissions("test:one:formLeave:export") + @RequestMapping(value = "export", method=RequestMethod.POST) + public String exportFile(FormLeave formLeave, HttpServletRequest request, HttpServletResponse response, RedirectAttributes redirectAttributes) { + try { + String fileName = "请假"+DateUtils.getDate("yyyyMMddHHmmss")+".xlsx"; + Page page = formLeaveService.findPage(new Page(request, response, -1), formLeave); + new ExportExcel("请假", FormLeave.class).setDataList(page.getList()).write(response, fileName).dispose(); + return null; + } catch (Exception e) { + addMessage(redirectAttributes, "导出请假记录失败!失败信息:"+e.getMessage()); + } + return "redirect:"+Global.getAdminPath()+"/test/one/formLeave/?repage"; + } + + /** + * 导入Excel数据 + + */ + @RequiresPermissions("test:one:formLeave:import") + @RequestMapping(value = "import", method=RequestMethod.POST) + public String importFile(MultipartFile file, RedirectAttributes redirectAttributes) { + try { + int successNum = 0; + ImportExcel ei = new ImportExcel(file, 1, 0); + List list = ei.getDataList(FormLeave.class); + for (FormLeave formLeave : list){ + formLeaveService.save(formLeave); + } + addMessage(redirectAttributes, "已成功导入 "+successNum+" 条请假记录"); + } catch (Exception e) { + addMessage(redirectAttributes, "导入请假失败!失败信息:"+e.getMessage()); + } + return "redirect:"+Global.getAdminPath()+"/test/one/formLeave/?repage"; + } + + /** + * 下载导入请假数据模板 + */ + @RequiresPermissions("test:one:formLeave:import") + @RequestMapping(value = "import/template") + public String importFileTemplate(HttpServletResponse response, RedirectAttributes redirectAttributes) { + try { + String fileName = "请假数据导入模板.xlsx"; + List list = Lists.newArrayList(); + new ExportExcel("请假数据", FormLeave.class, 1).setDataList(list).write(response, fileName).dispose(); + return null; + } catch (Exception e) { + addMessage(redirectAttributes, "导入模板下载失败!失败信息:"+e.getMessage()); + } + return "redirect:"+Global.getAdminPath()+"/test/one/formLeave/?repage"; + } + + +} \ No newline at end of file diff --git a/JeeSpringCloud/jeespring-web/src/main/java/com/jeespring/modules/test/web/onetomany/TestDataMainController.java b/JeeSpringCloud/jeespring-web/src/main/java/com/jeespring/modules/test/web/onetomany/TestDataMainController.java new file mode 100644 index 0000000000000000000000000000000000000000..100ff1cf96669c4f070cd7e24ccc8681992d1ec5 --- /dev/null +++ b/JeeSpringCloud/jeespring-web/src/main/java/com/jeespring/modules/test/web/onetomany/TestDataMainController.java @@ -0,0 +1,293 @@ +/** + * * Copyright © 2015-2020 JeeSpringCloud All rights reserved.. + */ +package com.jeespring.modules.test.web.onetomany; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.apache.shiro.authz.annotation.Logical; +import org.apache.shiro.authz.annotation.RequiresPermissions; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.web.bind.annotation.ModelAttribute; +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.multipart.MultipartFile; +import org.springframework.web.servlet.mvc.support.RedirectAttributes; + +import com.google.common.collect.Lists; +import com.jeespring.common.utils.DateUtils; +import com.jeespring.common.config.Global; +import com.jeespring.common.persistence.Page; +import com.jeespring.common.web.AbstractBaseController; +import com.jeespring.common.utils.StringUtils; +import com.jeespring.common.utils.excel.ExportExcel; +import com.jeespring.common.utils.excel.ImportExcel; +import com.jeespring.modules.test.entity.onetomany.TestDataMain; +import com.jeespring.modules.test.service.onetomany.TestDataMainService; +import com.jeespring.modules.test.service.onetomany.ITestDataMainService; +import com.alibaba.dubbo.config.annotation.Reference; + +/** + * 订票Controller + * @author JeeSpring + * @version 2018-10-12 + */ +@Controller +@RequestMapping(value = "${adminPath}/test/onetomany/testDataMain") +public class TestDataMainController extends AbstractBaseController { + + //调用dubbo服务器是,要去Reference注解,注解Autowired + //@Reference(version = "1.0.0") + @Autowired + private ITestDataMainService testDataMainService; + + @ModelAttribute + public TestDataMain get(@RequestParam(required=false) String id) { + TestDataMain entity = null; + if (StringUtils.isNotBlank(id)){ + entity = testDataMainService.getCache(id); + //entity = testDataMainService.get(id); + } + if (entity == null){ + entity = new TestDataMain(); + } + return entity; + } + + /** + * 订票统计页面 + */ + @RequiresPermissions("test:onetomany:testDataMain:total") + @RequestMapping(value = {"total"}) + public String totalView(TestDataMain testDataMain, HttpServletRequest request, HttpServletResponse response, Model model) { + total(testDataMain,request,response,model); + return "modules/test/onetomany/testDataMainTotal"; + } + private void total(TestDataMain testDataMain, HttpServletRequest request, HttpServletResponse response, Model model) { + if(StringUtils.isEmpty(testDataMain.getTotalType())){ + testDataMain.setTotalType("%Y-%m-%d"); + } + //X轴的数据 + List xAxisData= new ArrayList(); + //Y轴的数据 + Map> yAxisData = new HashMap>(); + List countList = new ArrayList(); + List sumList = new ArrayList(); + if(testDataMain.getOrderBy()==""){ + testDataMain.setOrderBy("totalDate"); + } + List list = testDataMainService.totalCache(testDataMain); + //List list = testDataMainService.total(testDataMain); + model.addAttribute("list", list); + for(TestDataMain testDataMainItem:list){ + //x轴数据 + xAxisData.add( testDataMainItem.getTotalDate()); + countList.add(Double.valueOf(testDataMainItem.getTotalCount())); + } + yAxisData.put("数量", countList); + request.setAttribute("xAxisData", xAxisData); + request.setAttribute("yAxisData", yAxisData); + model.addAttribute("sumTotalCount", list.stream().mapToInt(TestDataMain::getTotalCount).sum()); + + //饼图数据 + Map orientData= new HashMap(); + for(TestDataMain testDataMainItem:list){ + orientData.put(testDataMainItem.getTotalDate(), testDataMainItem.getTotalCount()); + } + model.addAttribute("orientData", orientData); + } + @RequiresPermissions("test:onetomany:testDataMain:total") + @RequestMapping(value = {"totalMap"}) + public String totalMap(TestDataMain testDataMain, HttpServletRequest request, HttpServletResponse response, Model model) { + if(StringUtils.isEmpty(testDataMain.getTotalType())){ + testDataMain.setTotalType("%Y-%m-%d"); + } + List list = testDataMainService.totalCache(testDataMain); + //List list = testDataMainService.total(testDataMain); + model.addAttribute("sumTotalCount", list.stream().mapToInt(TestDataMain::getTotalCount).sum()); + model.addAttribute("list", list); + return "modules/test/onetomany/testDataMainTotalMap"; + } + + /** + * 订票列表页面 + */ + @RequiresPermissions("test:onetomany:testDataMain:list") + @RequestMapping(value = {"list", ""}) + public String list(TestDataMain testDataMain, HttpServletRequest request, HttpServletResponse response, Model model) { + Page page = testDataMainService.findPageCache(new Page(request, response), testDataMain); + //Page page = testDataMainService.findPage(new Page(request, response), testDataMain); + model.addAttribute("page", page); + testDataMain.setOrderBy("totalDate"); + total(testDataMain,request,response,model); + return "modules/test/onetomany/testDataMainList"; + } + + /** + * 订票列表页面 + */ + @RequiresPermissions("test:onetomany:testDataMain:list") + @RequestMapping(value = {"listVue"}) + public String listVue(TestDataMain testDataMain, HttpServletRequest request, HttpServletResponse response, Model model) { + Page page = testDataMainService.findPageCache(new Page(request, response), testDataMain); + //Page page = testDataMainService.findPage(new Page(request, response), testDataMain); + model.addAttribute("page", page); + return "modules/test/onetomany/testDataMainListVue"; + } + + /** + * 订票列表页面 + */ + //RequiresPermissions("test:onetomany:testDataMain:select") + @RequestMapping(value = {"select"}) + public String select(TestDataMain testDataMain, HttpServletRequest request, HttpServletResponse response, Model model) { + Page page = testDataMainService.findPageCache(new Page(request, response), testDataMain); + //Page page = testDataMainService.findPage(new Page(request, response), testDataMain); + model.addAttribute("page", page); + return "modules/test/onetomany/testDataMainSelect"; + } + + /** + * 查看,增加,编辑订票表单页面 + */ + @RequiresPermissions(value={"test:onetomany:testDataMain:view","test:onetomany:testDataMain:add","test:onetomany:testDataMain:edit"},logical=Logical.OR) + @RequestMapping(value = "form") + public String form(TestDataMain testDataMain, Model model, HttpServletRequest request, HttpServletResponse response) { + model.addAttribute("action", request.getParameter("action")); + model.addAttribute("testDataMain", testDataMain); + if(request.getParameter("ViewFormType")!=null && "FormTwo".equals(request.getParameter("ViewFormType"))) { + return "modules/test/onetomany/testDataMainFormTwo"; + } + return "modules/test/onetomany/testDataMainForm"; + } + + /** + * 保存订票 + */ + @RequiresPermissions(value={"test:onetomany:testDataMain:add","test:onetomany:testDataMain:edit"},logical=Logical.OR) + @RequestMapping(value = "save") + public String save(TestDataMain testDataMain, Model model, RedirectAttributes redirectAttributes, HttpServletRequest request, HttpServletResponse response) { + if (!beanValidator(model, testDataMain)){ + return form(testDataMain, model,request,response); + } + testDataMainService.save(testDataMain); + addMessage(redirectAttributes, "保存订票成功"); + return "redirect:"+Global.getAdminPath()+"/test/onetomany/testDataMain/?repage"; + } + + /** + * 删除订票 + */ + @RequiresPermissions("test:onetomany:testDataMain:del") + @RequestMapping(value = "delete") + public String delete(TestDataMain testDataMain, RedirectAttributes redirectAttributes) { + testDataMainService.delete(testDataMain); + addMessage(redirectAttributes, "删除订票成功"); + return "redirect:"+Global.getAdminPath()+"/test/onetomany/testDataMain/?repage"; + } + + /** + * 删除订票(逻辑删除,更新del_flag字段为1,在表包含字段del_flag时,可以调用此方法,将数据隐藏) + */ + @RequiresPermissions(value={"test:onetomany:testDataMain:del","test:onetomany:testDataMain:delByLogic"},logical=Logical.OR) + @RequestMapping(value = "deleteByLogic") + public String deleteByLogic(TestDataMain testDataMain, RedirectAttributes redirectAttributes) { + testDataMainService.deleteByLogic(testDataMain); + addMessage(redirectAttributes, "逻辑删除订票成功"); + return "redirect:"+Global.getAdminPath()+"/test/onetomany/testDataMain/?repage"; + } + + /** + * 批量删除订票 + */ + @RequiresPermissions("test:onetomany:testDataMain:del") + @RequestMapping(value = "deleteAll") + public String deleteAll(String ids, RedirectAttributes redirectAttributes) { + String[] idArray = ids.split(","); + for(String id : idArray){ + testDataMainService.delete(testDataMainService.get(id)); + } + addMessage(redirectAttributes, "删除订票成功"); + return "redirect:"+Global.getAdminPath()+"/test/onetomany/testDataMain/?repage"; + } + + /** + * 批量删除订票(逻辑删除,更新del_flag字段为1,在表包含字段del_flag时,可以调用此方法,将数据隐藏) + */ + @RequiresPermissions(value={"test:onetomany:testDataMain:del","test:onetomany:testDataMain:delByLogic"},logical=Logical.OR) + @RequestMapping(value = "deleteAllByLogic") + public String deleteAllByLogic(String ids, RedirectAttributes redirectAttributes) { + String[] idArray = ids.split(","); + for(String id : idArray){ + testDataMainService.deleteByLogic(testDataMainService.get(id)); + } + addMessage(redirectAttributes, "删除订票成功"); + return "redirect:"+Global.getAdminPath()+"/test/onetomany/testDataMain/?repage"; + } + + /** + * 导出excel文件 + */ + @RequiresPermissions("test:onetomany:testDataMain:export") + @RequestMapping(value = "export", method=RequestMethod.POST) + public String exportFile(TestDataMain testDataMain, HttpServletRequest request, HttpServletResponse response, RedirectAttributes redirectAttributes) { + try { + String fileName = "订票"+DateUtils.getDate("yyyyMMddHHmmss")+".xlsx"; + Page page = testDataMainService.findPage(new Page(request, response, -1), testDataMain); + new ExportExcel("订票", TestDataMain.class).setDataList(page.getList()).write(response, fileName).dispose(); + return null; + } catch (Exception e) { + addMessage(redirectAttributes, "导出订票记录失败!失败信息:"+e.getMessage()); + } + return "redirect:"+Global.getAdminPath()+"/test/onetomany/testDataMain/?repage"; + } + + /** + * 导入Excel数据 + + */ + @RequiresPermissions("test:onetomany:testDataMain:import") + @RequestMapping(value = "import", method=RequestMethod.POST) + public String importFile(MultipartFile file, RedirectAttributes redirectAttributes) { + try { + int successNum = 0; + ImportExcel ei = new ImportExcel(file, 1, 0); + List list = ei.getDataList(TestDataMain.class); + for (TestDataMain testDataMain : list){ + testDataMainService.save(testDataMain); + } + addMessage(redirectAttributes, "已成功导入 "+successNum+" 条订票记录"); + } catch (Exception e) { + addMessage(redirectAttributes, "导入订票失败!失败信息:"+e.getMessage()); + } + return "redirect:"+Global.getAdminPath()+"/test/onetomany/testDataMain/?repage"; + } + + /** + * 下载导入订票数据模板 + */ + @RequiresPermissions("test:onetomany:testDataMain:import") + @RequestMapping(value = "import/template") + public String importFileTemplate(HttpServletResponse response, RedirectAttributes redirectAttributes) { + try { + String fileName = "订票数据导入模板.xlsx"; + List list = Lists.newArrayList(); + new ExportExcel("订票数据", TestDataMain.class, 1).setDataList(list).write(response, fileName).dispose(); + return null; + } catch (Exception e) { + addMessage(redirectAttributes, "导入模板下载失败!失败信息:"+e.getMessage()); + } + return "redirect:"+Global.getAdminPath()+"/test/onetomany/testDataMain/?repage"; + } + + +} \ No newline at end of file diff --git a/JeeSpringCloud/jeespring-web/src/main/java/com/jeespring/modules/test/web/tree/TestTreeController.java b/JeeSpringCloud/jeespring-web/src/main/java/com/jeespring/modules/test/web/tree/TestTreeController.java new file mode 100644 index 0000000000000000000000000000000000000000..004d8d5503c4d35b0fd8976a9d3c9634a99b9923 --- /dev/null +++ b/JeeSpringCloud/jeespring-web/src/main/java/com/jeespring/modules/test/web/tree/TestTreeController.java @@ -0,0 +1,138 @@ +/** + * * Copyright © 2015-2020 JeeSpringCloud All rights reserved.. + */ +package com.jeespring.modules.test.web.tree; + +import java.util.List; +import java.util.Map; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.apache.shiro.authz.annotation.Logical; +import org.apache.shiro.authz.annotation.RequiresPermissions; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.web.bind.annotation.ModelAttribute; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.servlet.mvc.support.RedirectAttributes; + +import com.google.common.collect.Lists; +import com.google.common.collect.Maps; +import com.jeespring.common.config.Global; +import com.jeespring.common.web.AbstractBaseController; +import com.jeespring.common.utils.StringUtils; +import com.jeespring.modules.test.entity.tree.TestTree; +import com.jeespring.modules.test.service.tree.TestTreeService; + +/** + * 树Controller + * @author JeeSpring + * @version 2018-10-11 + */ +@Controller +@RequestMapping(value = "${adminPath}/test/tree/testTree") +public class TestTreeController extends AbstractBaseController { + + @Autowired + private TestTreeService testTreeService; + + @ModelAttribute + public TestTree get(@RequestParam(required=false) String id) { + TestTree entity = null; + if (StringUtils.isNotBlank(id)){ + entity = testTreeService.get(id); + } + if (entity == null){ + entity = new TestTree(); + } + return entity; + } + + /** + * 树列表页面 + */ + //@RequiresPermissions("test:tree:testTree:list") + @RequestMapping(value = {"list", ""}) + public String list(TestTree testTree, HttpServletRequest request, HttpServletResponse response, Model model) { + List list = testTreeService.findList(testTree); + model.addAttribute("list", list); + return "modules/test/tree/testTreeList"; + } + + /** + * 查看,增加,编辑树表单页面 + */ + //@RequiresPermissions(value={"test:tree:testTree:view","test:tree:testTree:add","test:tree:testTree:edit"},logical=Logical.OR) + @RequestMapping(value = "form") + public String form(TestTree testTree, Model model) { + if (testTree.getParent()!=null && StringUtils.isNotBlank(testTree.getParent().getId())){ + testTree.setParent(testTreeService.get(testTree.getParent().getId())); + // 获取排序号,最末节点排序号+30 + if (StringUtils.isBlank(testTree.getId())){ + TestTree testTreeChild = new TestTree(); + testTreeChild.setParent(new TestTree(testTree.getParent().getId())); + List list = testTreeService.findList(testTree); + if (list.size() > 0){ + testTree.setSort(list.get(list.size()-1).getSort()); + if (testTree.getSort() != null){ + testTree.setSort(testTree.getSort() + 30); + } + } + } + } + if (testTree.getSort() == null){ + testTree.setSort(30); + } + model.addAttribute("testTree", testTree); + return "modules/test/tree/testTreeForm"; + } + + /** + * 保存树 + */ + //@RequiresPermissions(value={"test:tree:testTree:add","test:tree:testTree:edit"},logical=Logical.OR) + @RequestMapping(value = "save") + public String save(TestTree testTree, Model model, RedirectAttributes redirectAttributes) { + if (!beanValidator(model, testTree)){ + return form(testTree, model); + } + testTreeService.save(testTree); + addMessage(redirectAttributes, "保存树成功"); + return "redirect:"+Global.getAdminPath()+"/test/tree/testTree/?repage"; + } + + /** + * 删除树 + */ + //@RequiresPermissions("test:tree:testTree:del") + @RequestMapping(value = "delete") + public String delete(TestTree testTree, RedirectAttributes redirectAttributes) { + testTreeService.delete(testTree); + addMessage(redirectAttributes, "删除树成功"); + return "redirect:"+Global.getAdminPath()+"/test/tree/testTree/?repage"; + } + + //@RequiresPermissions("user") + @ResponseBody + @RequestMapping(value = "treeData") + public List> treeData(@RequestParam(required=false) String extId, HttpServletResponse response) { + List> mapList = Lists.newArrayList(); + List list = testTreeService.findList(new TestTree()); + for (int i=0; i map = Maps.newHashMap(); + map.put("id", e.getId()); + map.put("pId", e.getParentId()); + map.put("name", e.getName()); + mapList.add(map); + } + } + return mapList; + } + +} \ No newline at end of file diff --git a/JeeSpringCloud/jeespring-web/src/main/resources/act/build.xml b/JeeSpringCloud/jeespring-web/src/main/resources/act/build.xml new file mode 100644 index 0000000000000000000000000000000000000000..eb9a020dde73366ef85b1f19a486108d21cee394 --- /dev/null +++ b/JeeSpringCloud/jeespring-web/src/main/resources/act/build.xml @@ -0,0 +1,29 @@ + + + + + + + + + + Activiti打包程序,请输入命令后操作! + + + + + 打包流程定义:请假流程 + + + + + + + + 打包流程定义:测试审核流程 + + + + + + diff --git a/JeeSpringCloud/jeespring-web/src/main/resources/act/deployments/oa/test_audit/test_audit.bar b/JeeSpringCloud/jeespring-web/src/main/resources/act/deployments/oa/test_audit/test_audit.bar new file mode 100644 index 0000000000000000000000000000000000000000..86a542df1959f81e036ba499b7135d0fd77e7a7f Binary files /dev/null and b/JeeSpringCloud/jeespring-web/src/main/resources/act/deployments/oa/test_audit/test_audit.bar differ diff --git a/JeeSpringCloud/jeespring-web/src/main/resources/act/designs/oa/leave/leave.bpmn b/JeeSpringCloud/jeespring-web/src/main/resources/act/designs/oa/leave/leave.bpmn new file mode 100644 index 0000000000000000000000000000000000000000..b526ac8f4ca83a1348ba700e672c95ca6348ee8c --- /dev/null +++ b/JeeSpringCloud/jeespring-web/src/main/resources/act/designs/oa/leave/leave.bpmn @@ -0,0 +1,141 @@ + + + + 请假流程演示 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/JeeSpringCloud/jeespring-web/src/main/resources/act/designs/oa/leave/leave.png b/JeeSpringCloud/jeespring-web/src/main/resources/act/designs/oa/leave/leave.png new file mode 100644 index 0000000000000000000000000000000000000000..0ecf52c4bbdadd9ef6b8dc22817f28e3696f27c1 Binary files /dev/null and b/JeeSpringCloud/jeespring-web/src/main/resources/act/designs/oa/leave/leave.png differ diff --git a/JeeSpringCloud/jeespring-web/src/main/resources/act/designs/oa/test_audit/test_audit.bpmn b/JeeSpringCloud/jeespring-web/src/main/resources/act/designs/oa/test_audit/test_audit.bpmn new file mode 100644 index 0000000000000000000000000000000000000000..9e399c43f68d07f6124deffa8b0ec87f355cb32f --- /dev/null +++ b/JeeSpringCloud/jeespring-web/src/main/resources/act/designs/oa/test_audit/test_audit.bpmn @@ -0,0 +1,171 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/JeeSpringCloud/jeespring-web/src/main/resources/act/designs/oa/test_audit/test_audit.png b/JeeSpringCloud/jeespring-web/src/main/resources/act/designs/oa/test_audit/test_audit.png new file mode 100644 index 0000000000000000000000000000000000000000..eea387bbbe62699ad721799758f5f39843d3246f Binary files /dev/null and b/JeeSpringCloud/jeespring-web/src/main/resources/act/designs/oa/test_audit/test_audit.png differ diff --git a/JeeSpringCloud/jeespring-web/src/main/resources/application.yml b/JeeSpringCloud/jeespring-web/src/main/resources/application.yml new file mode 100644 index 0000000000000000000000000000000000000000..030899534d82e14e9edac41bd6be2035c51a796d --- /dev/null +++ b/JeeSpringCloud/jeespring-web/src/main/resources/application.yml @@ -0,0 +1,212 @@ +server: + port: 9993 + tomcat: + uri-encoding: UTF-8 + basedir: /data/jeespring/tomcat + max-threads: 2000 + min-spare-threads: 10 + accesslog: + pattern: common + enabled: true + directory: ../logs + prefix: jeespring_access_log + suffix: .log + request-attributes-enabled: true + rename-on-rotate: true + ssl: + key-store: classpath:keystore.p12 + key-store-password: jeespring + keyStoreType: PKCS12 + keyAlias: tomcat + #启动热部署 + jsp-servlet.init-parameters.development: true +http: + port: 8883 +logging: + level: + root: INFO + #WARN、DEBUG、INFO;DEBUG: 设置为DEBUG会打印SQL语句 + com.jeespring: WARN + com.jeespring.modules.cms: DEBUG + com.company: DEBUG + org.apache.shiro.cache.ehcache.EhCacheManager: WARN +#如果不需要启用安全验证 spring boot admin +management: + security: + #enabled: false +info: #定义各种额外的详情给服务端显示 + app: + name: "@project.name@" #从pom.xml中获取 + description: "@project.description@" + version: "@project.version@" + spring-boot-version: "@project.parent.version@" +spring: +#dubbo的消费者和提供者配置,默认为消费者dubboConsumer。如果要启用提供者,请配置为dubboProvider。 + #profiles: + #active: dubboConsumer + application: + name: jeeSpring + #spring boot admin + boot: + admin: + #client: + #prefer-ip: true # 解决windows下运行时无法识别主机名的问题 + #url: http://localhost:8999 + #数据库的配置 + datasource: + driverClassName: com.mysql.jdbc.Driver + type: com.alibaba.druid.pool.DruidDataSource + url: jdbc:mysql://127.0.0.1:3306/jeespring?useUnicode=true&characterEncoding=utf-8 + username: root + password: root + # 下面为连接池的补充设置,应用到上面所有数据源中 + # 初始化大小,最小,最大 + initialSize: 5 + minIdle: 3 + maxActive: 20 + # 配置获取连接等待超时的时间 + maxWait: 60000 + # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 + timeBetweenEvictionRunsMillis: 60000 + # 配置一个连接在池中最小生存的时间,单位是毫秒 + minEvictableIdleTimeMillis: 30000 + validationQuery: SELECT 'x' FROM DUAL + testWhileIdle: true + testOnBorrow: false + testOnReturn: false + # 打开PSCache,并且指定每个连接上PSCache的大小 + poolPreparedStatements: true + maxPoolPreparedStatementPerConnectionSize: 20 + # 配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙 + filters: stat,wall,slf4j + # 通过connectProperties属性来打开mergeSql功能;慢SQL记录 + connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000 + # 合并多个DruidDataSource的监控数据 + useGlobalDataSourceStat: true + +#springMvc的配置 + mvc: + view: + prefix: /WEB-INF/views/ + suffix: .jsp + servlet: + load-on-startup: 1 +#spring-ehcache的配置 + cache: + type: ehcache + ehcache: + config: classpath:ehcache.xml +#spring-redis的配置 + redis: + hostName: 127.0.0.1 + port: 6379 + password: 123456 + pool: + maxActive: 8 + maxWait: -1 + maxIdle: 8 + minIdle: 0 + timeout: 0 + keyPrefix: JeeSpring_ #Redis key 前缀 + run: true #Redis是否启动 + listFlush: true #list记录根据添加修改删除自动清除 + expireTime: 900 #缓存有效时间15分钟 + expireTimeShiro: 1800 #缓存有效时间30分钟 + ######################################### 使用activemq队列是,取消下面注解 + activemq: + broker-url: tcp://localhost:61616 + in-memory: true # Specify if the default broker URL should be in memory. Ignored if an explicit broker has been specified. + password: admin # Login password of the broker. + user: admin # Login user of the broker. + packages: + trust-all: true # Trust all packages. + trusted: # Comma-separated list of specific packages to trust (when not trusting all packages). + pool: + configuration.*: # See PooledConnectionFactory. + enabled: true # Whether a PooledConnectionFactory should be created instead of a regular ConnectionFactory. + expiry-timeout: 0 # Connection expiration timeout in milliseconds. + idle-timeout: 30000 # Connection idle timeout in milliseconds. + max-connections: 1 # Maximum number of pooled connections. +#mybatis的配置 +mybatis: + config-location: classpath:/mybatis-config.xml + mapper-locations: classpath*:/mappings/**/*.xml + type-aliases-package: com.jeespring,com.company +#admin页面管理Path +adminPath: /admin +frontPath: /cms +urlSuffix: .html +#分页配置 +page: + pageSize: 10 +#文件上传的路径 +userfiles: + basedir: /data/jeespring/upload +#系统发生邮件服务账号密码 +email: + from: 516821420@qq.com + fromName: jeespring + username: 516821420@qq.com + password: nxpnalicxljjcaec +job: + company: + companyScheduledTaskService: + run: 0 0/1 9-19 * * ? #朝九晚五工作时间内每半小时 + #run: 0 0 10,14,16 * * ? 每天上午10点,下午2点,4点 + #run: 0 0 12 * * ?" 每天中午12点触发 + jeeSrping: + JeeSpringScheduledTaskService: + run: 5000 + #run: 0 0 10,14,16 * * ? 每天上午10点,下午2点,4点 + #run: 0 0 12 * * ?" 每天中午12点触发 + +demoMode: false +demoModeDescription: 演示版启用,为系统能正常演示,暂时不允许操作!系统配置可开启正式版!功能全开源!每周周一再更新! +# Shiro权限配置 +shiro: + redis: false #启动shiro redis缓存,单点登录,##单点登录性能有带提升## + user: + # 登录地址 + loginUrl: /admin/login + # 权限认证失败地址 + unauthorizedUrl: /admin/login + cookie: + # 设置Cookie的域名 默认空,即当前访问的域名 + domain: + # 设置cookie的有效访问路径 + path: / + # 设置HttpOnly属性 + httpOnly: true + # 设置Cookie的过期时间,天为单位 + maxAge: 30 + session: + # Session超时时间(默认30分钟) + expireTime: 30 + # 同步session到数据库的周期(默认1分钟) + dbSyncPeriod: 1 + # 相隔多久检查一次session的有效性,默认就是10分钟 + validationInterval: 10 +#dubbo客户端,使用dubbo时,请启动zookeeper +dubbo: + application: + name: consumer + registry: + address: zookeeper://127.0.0.1:2181 + scan: + base-packages: com.jeespring.modules.server.web + run: true +#dubbo服务端 +#dubbo: + #application: + #name: provider + #registry: + #address: zookeeper://127.0.0.1:2181 + #protocol: + #name: dubbo + #port: 20880 + #scan: + #base-packages: com.jeespring.modules.server.service + #run: true +security: + basic: + enabled: false \ No newline at end of file diff --git a/JeeSpringCloud/jeespring-web/src/main/resources/ckfinder.xml b/JeeSpringCloud/jeespring-web/src/main/resources/ckfinder.xml new file mode 100644 index 0000000000000000000000000000000000000000..aea526ec0d61b61d810e36faa7ac57f11d6746c6 --- /dev/null +++ b/JeeSpringCloud/jeespring-web/src/main/resources/ckfinder.xml @@ -0,0 +1,91 @@ + + + true + + /userfiles/ + + + 1024 + 768 + 80 + UTF-8 + false + false + CKFinder_UserRole + true + true + true + html,htm,xml,js + + .* + CVS + + + .* + + + + + %BASE_URL%files/ + %BASE_DIR%files + 5M + 7z,aiff,asf,avi,bmp,csv,doc,docx,fla,flv,gif,gz,gzip,jpeg,jpg,mid,mov,mp3,mp4,mpc,mpeg,mpg,ods,odt,pdf,png,ppt,pptx,pxd,qt,ram,rar,rm,rmi,rmvb,rtf,sdc,sitd,swf,sxc,sxw,tar,tgz,tif,tiff,txt,vsd,wav,wma,wmv,xls,xlsx,zip + + + + %BASE_URL%images/ + %BASE_DIR%images + 2M + bmp,gif,jpeg,jpg,png + + + + %BASE_URL%flash/ + %BASE_DIR%flash + 2M + swf,flv + + + + + + * + * + / + false + false + false + false + false + false + false + false + + + + true + %BASE_URL%_thumbs/ + %BASE_DIR%_thumbs + true + 320 + 240 + 80 + + + + imageresize + com.ckfinder.connector.plugins.ImageResize + + + + + + + + fileeditor + com.ckfinder.connector.plugins.FileEditor + + + + com.ckfinder.connector.configuration.ConfigurationPathBuilder + \ No newline at end of file diff --git a/JeeSpringCloud/jeespring-web/src/main/resources/ehcache.xml b/JeeSpringCloud/jeespring-web/src/main/resources/ehcache.xml new file mode 100644 index 0000000000000000000000000000000000000000..c28a423238e2386a87a2b79beeffbaac41d9da68 --- /dev/null +++ b/JeeSpringCloud/jeespring-web/src/main/resources/ehcache.xml @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/JeeSpringCloud/jeespring-web/src/main/resources/httpsConfig/keystore.p12 b/JeeSpringCloud/jeespring-web/src/main/resources/httpsConfig/keystore.p12 new file mode 100644 index 0000000000000000000000000000000000000000..475a2b481cfcfa92423f4bda729e83ea08f15aa9 Binary files /dev/null and b/JeeSpringCloud/jeespring-web/src/main/resources/httpsConfig/keystore.p12 differ diff --git "a/JeeSpringCloud/jeespring-web/src/main/resources/httpsConfig/\347\224\237\346\210\220\345\220\216\345\217\260pps\346\226\207\344\273\266.txt" "b/JeeSpringCloud/jeespring-web/src/main/resources/httpsConfig/\347\224\237\346\210\220\345\220\216\345\217\260pps\346\226\207\344\273\266.txt" new file mode 100644 index 0000000000000000000000000000000000000000..dbc89f6234bc898593806f40f5e654419b42f42d --- /dev/null +++ "b/JeeSpringCloud/jeespring-web/src/main/resources/httpsConfig/\347\224\237\346\210\220\345\220\216\345\217\260pps\346\226\207\344\273\266.txt" @@ -0,0 +1 @@ +keytool -genkey -alias tomcat -storetype PKCS12 -keyalg RSA -keysize 2048 -keystore keystore.p12 -validity 3650 \ No newline at end of file diff --git a/JeeSpringCloud/jeespring-web/src/main/resources/keystore.p12 b/JeeSpringCloud/jeespring-web/src/main/resources/keystore.p12 new file mode 100644 index 0000000000000000000000000000000000000000..475a2b481cfcfa92423f4bda729e83ea08f15aa9 Binary files /dev/null and b/JeeSpringCloud/jeespring-web/src/main/resources/keystore.p12 differ diff --git a/JeeSpringCloud/jeespring-web/src/main/resources/mappings/modules/test/one/FormLeaveDao.xml b/JeeSpringCloud/jeespring-web/src/main/resources/mappings/modules/test/one/FormLeaveDao.xml new file mode 100644 index 0000000000000000000000000000000000000000..86f164b3c52db6dcb0585cacd266238e20d656f1 --- /dev/null +++ b/JeeSpringCloud/jeespring-web/src/main/resources/mappings/modules/test/one/FormLeaveDao.xml @@ -0,0 +1,265 @@ + + + + + + a.id AS "id", + a.user_id AS "user.id", + a.office_id AS "office.id", + a.area_id AS "area.id", + a.begin_date AS "beginDate", + a.end_date AS "endDate", + a.create_by AS "createBy.id", + a.create_date AS "createDate", + a.update_by AS "updateBy.id", + a.update_date AS "updateDate", + a.remarks AS "remarks", + a.del_flag AS "delFlag", + user.name AS "user.name", + office.name AS "office.name", + area.name AS "area.name" + + + + a.id AS "id", + a.user_id AS "user.id", + a.office_id AS "office.id", + a.area_id AS "area.id", + a.begin_date AS "beginDate", + a.end_date AS "endDate", + a.create_by AS "createBy.id", + a.create_date AS "createDate", + a.update_by AS "updateBy.id", + a.update_date AS "updateDate", + a.remarks AS "remarks", + a.del_flag AS "delFlag", + user.name AS "user.name", + office.name AS "office.name", + area.name AS "area.name" + + + + LEFT JOIN sys_user user ON user.id = a.user_id + LEFT JOIN sys_office office ON office.id = a.office_id + LEFT JOIN sys_area area ON area.id = a.area_id + + + + SELECT + + FROM form_leave a + + WHERE a.id = #{id} + + + + SELECT + + FROM form_leave a + + + a.del_flag = #{DEL_FLAG_NORMAL} + + AND a.id = #{id} + + + AND a.user_id = #{user.id} + + + AND a.office_id = #{office.id} + + + AND a.area_id = #{area.id} + + + AND a.begin_date = #{beginDate} + + + AND a.end_date = #{endDate} + + + AND a.create_by = #{createBy.id} + + + AND a.create_date = #{createDate} + + + AND a.update_by = #{updateBy.id} + + + AND a.update_date = #{updateDate} + + + AND a.remarks = #{remarks} + + + AND a.del_flag = #{delFlag} + + + + + AND ${where} + + + ORDER BY ${page.orderBy} + + + ORDER BY a.update_date DESC + + + + + + SELECT + + FROM form_leave a + + + a.del_flag = #{DEL_FLAG_NORMAL} + + + + ORDER BY ${page.orderBy} + + + ORDER BY a.update_date DESC + + + + + + INSERT INTO form_leave( + id, + user_id, + office_id, + area_id, + begin_date, + end_date, + create_by, + create_date, + update_by, + update_date, + remarks, + del_flag + ) VALUES ( + #{id}, + #{user.id}, + #{office.id}, + #{area.id}, + #{beginDate}, + #{endDate}, + #{createBy.id}, + #{createDate}, + #{updateBy.id}, + #{updateDate}, + #{remarks}, + #{delFlag} + ) + + + + UPDATE form_leave SET + user_id = #{user.id}, + office_id = #{office.id}, + area_id = #{area.id}, + begin_date = #{beginDate}, + end_date = #{endDate}, + update_by = #{updateBy.id}, + update_date = #{updateDate}, + remarks = #{remarks} + WHERE id = #{id} + + + + + + DELETE FROM form_leave + WHERE id = #{id} + + + + + UPDATE form_leave SET + del_flag = #{DEL_FLAG_DELETE} + WHERE id = #{id} + + + + select * FROM form_leave where ${propertyName} = '${value}' + + + + SELECT + + + DATE_FORMAT(a.create_date,'${totalType}') as totalDate, + + + + + count(*) as totalCount + FROM + form_leave a + + 1=1 + and a.del_flag = #{DEL_FLAG_NORMAL} + + AND a.id = #{id} + + + AND a.user_id = #{user.id} + + + AND a.office_id = #{office.id} + + + AND a.area_id = #{area.id} + + + AND a.begin_date = #{beginDate} + + + AND a.end_date = #{endDate} + + + AND a.create_by = #{createBy.id} + + + AND a.create_date = #{createDate} + + + AND a.update_by = #{updateBy.id} + + + AND a.update_date = #{updateDate} + + + AND a.remarks = #{remarks} + + + AND a.del_flag = #{delFlag} + + + + + GROUP BY DATE_FORMAT(a.create_date,'${totalType}'),${groupBy} + + + GROUP BY ${groupBy} + + + GROUP BY DATE_FORMAT(a.create_date,'${totalType}') + + + + + + + ORDER BY ${orderBy} + + + ORDER BY a.update_date DESC + + + + \ No newline at end of file diff --git a/JeeSpringCloud/jeespring-web/src/main/resources/mappings/modules/test/onetomany/TestDataChild2Dao.xml b/JeeSpringCloud/jeespring-web/src/main/resources/mappings/modules/test/onetomany/TestDataChild2Dao.xml new file mode 100644 index 0000000000000000000000000000000000000000..3f9b177fa28e72a2bd8bf155f36c6a4fb428de51 --- /dev/null +++ b/JeeSpringCloud/jeespring-web/src/main/resources/mappings/modules/test/onetomany/TestDataChild2Dao.xml @@ -0,0 +1,264 @@ + + + + + + a.id AS "id", + a.start AS "start.id", + a.end AS "end.id", + a.price AS "price", + a.test_data_main AS "testDataMain.id", + a.create_by AS "createBy.id", + a.create_date AS "createDate", + a.update_by AS "updateBy.id", + a.update_date AS "updateDate", + a.remarks AS "remarks", + a.del_flag AS "delFlag", + start.name AS "start.name", + end.name AS "end.name" + + + + a.id AS "id", + a.start AS "start.id", + a.end AS "end.id", + a.price AS "price", + a.test_data_main AS "testDataMain.id", + a.create_by AS "createBy.id", + a.create_date AS "createDate", + a.update_by AS "updateBy.id", + a.update_date AS "updateDate", + a.remarks AS "remarks", + a.del_flag AS "delFlag", + start.name AS "start.name", + end.name AS "end.name" + + + + LEFT JOIN test_data_main b ON b.id = a.test_data_main + LEFT JOIN sys_area start ON start.id = a.start + LEFT JOIN sys_area end ON end.id = a.end + + + + SELECT + + FROM test_data_child2 a + + WHERE a.id = #{id} + + + + SELECT + + FROM test_data_child2 a + + + a.del_flag = #{DEL_FLAG_NORMAL} + + AND a.id = #{id} + + + AND a.start = #{start.id} + + + AND a.end = #{end.id} + + + AND a.price = #{price} + + + AND a.test_data_main = #{testDataMain.id} + + + AND a.create_by = #{createBy.id} + + + AND a.create_date = #{createDate} + + + AND a.update_by = #{updateBy.id} + + + AND a.update_date = #{updateDate} + + + AND a.remarks = #{remarks} + + + AND a.del_flag = #{delFlag} + + + + + AND ${where} + + + ORDER BY ${page.orderBy} + + + ORDER BY a.create_date ASC + + + + + + SELECT + + FROM test_data_child2 a + + + a.del_flag = #{DEL_FLAG_NORMAL} + + + + ORDER BY ${page.orderBy} + + + ORDER BY a.create_date ASC + + + + + + INSERT INTO test_data_child2( + start, + end, + price, + test_data_main, + create_by, + create_date, + update_by, + update_date, + remarks, + del_flag + ) VALUES ( + #{start.id}, + #{end.id}, + #{price}, + #{testDataMain.id}, + #{createBy.id}, + #{createDate}, + #{updateBy.id}, + #{updateDate}, + #{remarks}, + #{delFlag} + ) + + + + UPDATE test_data_child2 SET + start = #{start.id}, + end = #{end.id}, + price = #{price}, + test_data_main = #{testDataMain.id}, + update_by = #{updateBy.id}, + update_date = #{updateDate}, + remarks = #{remarks} + WHERE id = #{id} + + + + + + DELETE FROM test_data_child2 + + + WHERE id = #{id} + + + WHERE test_data_main = #{testDataMain.id} + + + + + + + UPDATE test_data_child2 SET + del_flag = #{DEL_FLAG_DELETE} + + + WHERE id = #{id} + + + WHERE test_data_main = #{testDataMain.id} + + + + + + select * FROM test_data_child2 where ${propertyName} = '${value}' + + + + SELECT + + + DATE_FORMAT(a.create_date,'${totalType}') as totalDate, + + + + + count(*) as totalCount + FROM + test_data_child2 a + + 1=1 + and a.del_flag = #{DEL_FLAG_NORMAL} + + AND a.id = #{id} + + + AND a.start = #{start.id} + + + AND a.end = #{end.id} + + + AND a.price = #{price} + + + AND a.test_data_main = #{testDataMain.id} + + + AND a.create_by = #{createBy.id} + + + AND a.create_date = #{createDate} + + + AND a.update_by = #{updateBy.id} + + + AND a.update_date = #{updateDate} + + + AND a.remarks = #{remarks} + + + AND a.del_flag = #{delFlag} + + + + + GROUP BY DATE_FORMAT(a.create_date,'${totalType}'),${groupBy} + + + GROUP BY ${groupBy} + + + GROUP BY DATE_FORMAT(a.create_date,'${totalType}') + + + + + + + ORDER BY ${orderBy} + + + ORDER BY a.create_date ASC + + + + \ No newline at end of file diff --git a/JeeSpringCloud/jeespring-web/src/main/resources/mappings/modules/test/onetomany/TestDataChild3Dao.xml b/JeeSpringCloud/jeespring-web/src/main/resources/mappings/modules/test/onetomany/TestDataChild3Dao.xml new file mode 100644 index 0000000000000000000000000000000000000000..105339cb360bf8d53cbbf83c9fc98d1194d8b404 --- /dev/null +++ b/JeeSpringCloud/jeespring-web/src/main/resources/mappings/modules/test/onetomany/TestDataChild3Dao.xml @@ -0,0 +1,266 @@ + + + + + + a.id AS "id", + a.start AS "start.id", + a.end AS "end.id", + a.price AS "price", + a.test_data_main AS "testDataMain.id", + a.create_by AS "createBy.id", + a.create_date AS "createDate", + a.update_by AS "updateBy.id", + a.update_date AS "updateDate", + a.remarks AS "remarks", + a.del_flag AS "delFlag", + start.name AS "start.name", + end.name AS "end.name" + + + + a.id AS "id", + a.start AS "start.id", + a.end AS "end.id", + a.price AS "price", + a.test_data_main AS "testDataMain.id", + a.create_by AS "createBy.id", + a.create_date AS "createDate", + a.update_by AS "updateBy.id", + a.update_date AS "updateDate", + a.remarks AS "remarks", + a.del_flag AS "delFlag", + start.name AS "start.name", + end.name AS "end.name" + + + + LEFT JOIN test_data_main b ON b.id = a.test_data_main + LEFT JOIN sys_area start ON start.id = a.start + LEFT JOIN sys_area end ON end.id = a.end + + + + SELECT + + FROM test_data_child3 a + + WHERE a.id = #{id} + + + + SELECT + + FROM test_data_child3 a + + + a.del_flag = #{DEL_FLAG_NORMAL} + + AND a.id = #{id} + + + AND a.start = #{start.id} + + + AND a.end = #{end.id} + + + AND a.price = #{price} + + + AND a.test_data_main = #{testDataMain.id} + + + AND a.create_by = #{createBy.id} + + + AND a.create_date = #{createDate} + + + AND a.update_by = #{updateBy.id} + + + AND a.update_date = #{updateDate} + + + AND a.remarks = #{remarks} + + + AND a.del_flag = #{delFlag} + + + + + AND ${where} + + + ORDER BY ${page.orderBy} + + + ORDER BY a.create_date ASC + + + + + + SELECT + + FROM test_data_child3 a + + + a.del_flag = #{DEL_FLAG_NORMAL} + + + + ORDER BY ${page.orderBy} + + + ORDER BY a.create_date ASC + + + + + + INSERT INTO test_data_child3( + id, + start, + end, + price, + test_data_main, + create_by, + create_date, + update_by, + update_date, + remarks, + del_flag + ) VALUES ( + #{id}, + #{start.id}, + #{end.id}, + #{price}, + #{testDataMain.id}, + #{createBy.id}, + #{createDate}, + #{updateBy.id}, + #{updateDate}, + #{remarks}, + #{delFlag} + ) + + + + UPDATE test_data_child3 SET + start = #{start.id}, + end = #{end.id}, + price = #{price}, + test_data_main = #{testDataMain.id}, + update_by = #{updateBy.id}, + update_date = #{updateDate}, + remarks = #{remarks} + WHERE id = #{id} + + + + + + DELETE FROM test_data_child3 + + + WHERE id = #{id} + + + WHERE test_data_main = #{testDataMain.id} + + + + + + + UPDATE test_data_child3 SET + del_flag = #{DEL_FLAG_DELETE} + + + WHERE id = #{id} + + + WHERE test_data_main = #{testDataMain.id} + + + + + + select * FROM test_data_child3 where ${propertyName} = '${value}' + + + + SELECT + + + DATE_FORMAT(a.create_date,'${totalType}') as totalDate, + + + + + count(*) as totalCount + FROM + test_data_child3 a + + 1=1 + and a.del_flag = #{DEL_FLAG_NORMAL} + + AND a.id = #{id} + + + AND a.start = #{start.id} + + + AND a.end = #{end.id} + + + AND a.price = #{price} + + + AND a.test_data_main = #{testDataMain.id} + + + AND a.create_by = #{createBy.id} + + + AND a.create_date = #{createDate} + + + AND a.update_by = #{updateBy.id} + + + AND a.update_date = #{updateDate} + + + AND a.remarks = #{remarks} + + + AND a.del_flag = #{delFlag} + + + + + GROUP BY DATE_FORMAT(a.create_date,'${totalType}'),${groupBy} + + + GROUP BY ${groupBy} + + + GROUP BY DATE_FORMAT(a.create_date,'${totalType}') + + + + + + + ORDER BY ${orderBy} + + + ORDER BY a.create_date ASC + + + + \ No newline at end of file diff --git a/JeeSpringCloud/jeespring-web/src/main/resources/mappings/modules/test/onetomany/TestDataChildDao.xml b/JeeSpringCloud/jeespring-web/src/main/resources/mappings/modules/test/onetomany/TestDataChildDao.xml new file mode 100644 index 0000000000000000000000000000000000000000..fb29900a1f124c63bbc250a2c734383f7e957a33 --- /dev/null +++ b/JeeSpringCloud/jeespring-web/src/main/resources/mappings/modules/test/onetomany/TestDataChildDao.xml @@ -0,0 +1,266 @@ + + + + + + a.id AS "id", + a.start AS "start.id", + a.end AS "end.id", + a.price AS "price", + a.test_data_main_id AS "testDataMain.id", + a.create_by AS "createBy.id", + a.create_date AS "createDate", + a.update_by AS "updateBy.id", + a.update_date AS "updateDate", + a.remarks AS "remarks", + a.del_flag AS "delFlag", + start.name AS "start.name", + end.name AS "end.name" + + + + a.id AS "id", + a.start AS "start.id", + a.end AS "end.id", + a.price AS "price", + a.test_data_main_id AS "testDataMain.id", + a.create_by AS "createBy.id", + a.create_date AS "createDate", + a.update_by AS "updateBy.id", + a.update_date AS "updateDate", + a.remarks AS "remarks", + a.del_flag AS "delFlag", + start.name AS "start.name", + end.name AS "end.name" + + + + LEFT JOIN test_data_main b ON b.id = a.test_data_main_id + LEFT JOIN sys_area start ON start.id = a.start + LEFT JOIN sys_area end ON end.id = a.end + + + + SELECT + + FROM test_data_child a + + WHERE a.id = #{id} + + + + SELECT + + FROM test_data_child a + + + a.del_flag = #{DEL_FLAG_NORMAL} + + AND a.id = #{id} + + + AND a.start = #{start.id} + + + AND a.end = #{end.id} + + + AND a.price = #{price} + + + AND a.test_data_main_id = #{testDataMain.id} + + + AND a.create_by = #{createBy.id} + + + AND a.create_date = #{createDate} + + + AND a.update_by = #{updateBy.id} + + + AND a.update_date = #{updateDate} + + + AND a.remarks = #{remarks} + + + AND a.del_flag = #{delFlag} + + + + + AND ${where} + + + ORDER BY ${page.orderBy} + + + ORDER BY a.create_date ASC + + + + + + SELECT + + FROM test_data_child a + + + a.del_flag = #{DEL_FLAG_NORMAL} + + + + ORDER BY ${page.orderBy} + + + ORDER BY a.create_date ASC + + + + + + INSERT INTO test_data_child( + id, + start, + end, + price, + test_data_main_id, + create_by, + create_date, + update_by, + update_date, + remarks, + del_flag + ) VALUES ( + #{id}, + #{start.id}, + #{end.id}, + #{price}, + #{testDataMain.id}, + #{createBy.id}, + #{createDate}, + #{updateBy.id}, + #{updateDate}, + #{remarks}, + #{delFlag} + ) + + + + UPDATE test_data_child SET + start = #{start.id}, + end = #{end.id}, + price = #{price}, + test_data_main_id = #{testDataMain.id}, + update_by = #{updateBy.id}, + update_date = #{updateDate}, + remarks = #{remarks} + WHERE id = #{id} + + + + + + DELETE FROM test_data_child + + + WHERE id = #{id} + + + WHERE test_data_main_id = #{testDataMain.id} + + + + + + + UPDATE test_data_child SET + del_flag = #{DEL_FLAG_DELETE} + + + WHERE id = #{id} + + + WHERE test_data_main_id = #{testDataMain.id} + + + + + + select * FROM test_data_child where ${propertyName} = '${value}' + + + + SELECT + + + DATE_FORMAT(a.create_date,'${totalType}') as totalDate, + + + + + count(*) as totalCount + FROM + test_data_child a + + 1=1 + and a.del_flag = #{DEL_FLAG_NORMAL} + + AND a.id = #{id} + + + AND a.start = #{start.id} + + + AND a.end = #{end.id} + + + AND a.price = #{price} + + + AND a.test_data_main_id = #{testDataMain.id} + + + AND a.create_by = #{createBy.id} + + + AND a.create_date = #{createDate} + + + AND a.update_by = #{updateBy.id} + + + AND a.update_date = #{updateDate} + + + AND a.remarks = #{remarks} + + + AND a.del_flag = #{delFlag} + + + + + GROUP BY DATE_FORMAT(a.create_date,'${totalType}'),${groupBy} + + + GROUP BY ${groupBy} + + + GROUP BY DATE_FORMAT(a.create_date,'${totalType}') + + + + + + + ORDER BY ${orderBy} + + + ORDER BY a.create_date ASC + + + + \ No newline at end of file diff --git a/JeeSpringCloud/jeespring-web/src/main/resources/mappings/modules/test/onetomany/TestDataMainDao.xml b/JeeSpringCloud/jeespring-web/src/main/resources/mappings/modules/test/onetomany/TestDataMainDao.xml new file mode 100644 index 0000000000000000000000000000000000000000..6f72597fece1f15312187dbdc8421d613a0c205c --- /dev/null +++ b/JeeSpringCloud/jeespring-web/src/main/resources/mappings/modules/test/onetomany/TestDataMainDao.xml @@ -0,0 +1,283 @@ + + + + + + a.id AS "id", + a.user_id AS "user.id", + a.office_id AS "office.id", + a.area_id AS "area.id", + a.name AS "name", + a.sex AS "sex", + a.in_date AS "inDate", + a.create_by AS "createBy.id", + a.create_date AS "createDate", + a.update_by AS "updateBy.id", + a.update_date AS "updateDate", + a.remarks AS "remarks", + a.del_flag AS "delFlag", + user.name AS "user.name", + office.name AS "office.name", + area.name AS "area.name" + + + + a.id AS "id", + a.user_id AS "user.id", + a.office_id AS "office.id", + a.area_id AS "area.id", + a.name AS "name", + a.sex AS "sex", + a.in_date AS "inDate", + a.create_by AS "createBy.id", + a.create_date AS "createDate", + a.update_by AS "updateBy.id", + a.update_date AS "updateDate", + a.remarks AS "remarks", + a.del_flag AS "delFlag", + user.name AS "user.name", + office.name AS "office.name", + area.name AS "area.name" + + + + LEFT JOIN sys_user user ON user.id = a.user_id + LEFT JOIN sys_office office ON office.id = a.office_id + LEFT JOIN sys_area area ON area.id = a.area_id + + + + SELECT + + FROM test_data_main a + + WHERE a.id = #{id} + + + + SELECT + + FROM test_data_main a + + + a.del_flag = #{DEL_FLAG_NORMAL} + + AND a.id = #{id} + + + AND a.user_id = #{user.id} + + + AND a.office_id = #{office.id} + + + AND a.area_id = #{area.id} + + + AND a.name LIKE + '%'||#{name}||'%' + '%'+#{name}+'%' + concat('%',#{name},'%') + + + AND a.sex = #{sex} + + + AND a.in_date BETWEEN #{beginInDate} AND #{endInDate} + + + AND a.create_by = #{createBy.id} + + + AND a.create_date = #{createDate} + + + AND a.update_by = #{updateBy.id} + + + AND a.update_date = #{updateDate} + + + AND a.remarks = #{remarks} + + + AND a.del_flag = #{delFlag} + + + + + AND ${where} + + + ORDER BY ${page.orderBy} + + + ORDER BY a.update_date DESC + + + + + + SELECT + + FROM test_data_main a + + + a.del_flag = #{DEL_FLAG_NORMAL} + + + + ORDER BY ${page.orderBy} + + + ORDER BY a.update_date DESC + + + + + + INSERT INTO test_data_main( + id, + user_id, + office_id, + area_id, + name, + sex, + in_date, + create_by, + create_date, + update_by, + update_date, + remarks, + del_flag + ) VALUES ( + #{id}, + #{user.id}, + #{office.id}, + #{area.id}, + #{name}, + #{sex}, + #{inDate}, + #{createBy.id}, + #{createDate}, + #{updateBy.id}, + #{updateDate}, + #{remarks}, + #{delFlag} + ) + + + + UPDATE test_data_main SET + user_id = #{user.id}, + office_id = #{office.id}, + area_id = #{area.id}, + name = #{name}, + sex = #{sex}, + in_date = #{inDate}, + create_date = #{createDate}, + update_by = #{updateBy.id}, + update_date = #{updateDate}, + remarks = #{remarks} + WHERE id = #{id} + + + + + + DELETE FROM test_data_main + WHERE id = #{id} + + + + + UPDATE test_data_main SET + del_flag = #{DEL_FLAG_DELETE} + WHERE id = #{id} + + + + select * FROM test_data_main where ${propertyName} = '${value}' + + + + SELECT + + + DATE_FORMAT(a.create_date,'${totalType}') as totalDate, + + + + + count(*) as totalCount + FROM + test_data_main a + + 1=1 + and a.del_flag = #{DEL_FLAG_NORMAL} + + AND a.id = #{id} + + + AND a.user_id = #{user.id} + + + AND a.office_id = #{office.id} + + + AND a.area_id = #{area.id} + + + AND a.name LIKE + '%'||#{name}||'%' + '%'+#{name}+'%' + concat('%',#{name},'%') + + + AND a.sex = #{sex} + + + AND a.in_date BETWEEN #{beginInDate} AND #{endInDate} + + + AND a.create_by = #{createBy.id} + + + AND a.create_date = #{createDate} + + + AND a.update_by = #{updateBy.id} + + + AND a.update_date = #{updateDate} + + + AND a.remarks = #{remarks} + + + AND a.del_flag = #{delFlag} + + + + + GROUP BY DATE_FORMAT(a.create_date,'${totalType}'),${groupBy} + + + GROUP BY ${groupBy} + + + GROUP BY DATE_FORMAT(a.create_date,'${totalType}') + + + + + + + ORDER BY ${orderBy} + + + ORDER BY a.update_date DESC + + + + \ No newline at end of file diff --git a/JeeSpringCloud/jeespring-web/src/main/resources/mappings/modules/test/tree/TestTreeDao.xml b/JeeSpringCloud/jeespring-web/src/main/resources/mappings/modules/test/tree/TestTreeDao.xml new file mode 100644 index 0000000000000000000000000000000000000000..5c75f548f3fb86447701d0460a01782b87a66822 --- /dev/null +++ b/JeeSpringCloud/jeespring-web/src/main/resources/mappings/modules/test/tree/TestTreeDao.xml @@ -0,0 +1,147 @@ + + + + + + a.id AS "id", + a.name AS "name", + a.sort AS "sort", + a.parent_id AS "parent.id", + a.parent_ids AS "parentIds", + a.create_by AS "createBy.id", + a.create_date AS "createDate", + a.update_by AS "updateBy.id", + a.update_date AS "updateDate", + a.remarks AS "remarks", + a.del_flag AS "delFlag" + + + + + + + SELECT + + FROM test_tree a + + WHERE a.id = #{id} + + + + SELECT + + FROM test_tree a + + + a.del_flag = #{DEL_FLAG_NORMAL} + + AND a.name LIKE + '%'||#{name}||'%' + '%'+#{name}+'%' + concat('%',#{name},'%') + + + AND a.parent_id = #{parent.id} + + + AND a.parent_ids LIKE + '%'||#{parentIds}||'%' + '%'+#{parentIds}+'%' + concat('%',#{parentIds},'%') + + + ORDER BY a.sort ASC + + + + SELECT + + FROM test_tree a + + + a.del_flag = #{DEL_FLAG_NORMAL} + + ORDER BY a.sort ASC + + + + SELECT + a.id, + a.parent_id AS "parent.id", + a.parent_ids + FROM test_tree a + + + a.del_flag = #{DEL_FLAG_NORMAL} + AND a.parent_ids LIKE #{parentIds} + + ORDER BY a.sort ASC + + + + INSERT INTO test_tree( + id, + name, + sort, + parent_id, + parent_ids, + create_by, + create_date, + update_by, + update_date, + remarks, + del_flag + ) VALUES ( + #{id}, + #{name}, + #{sort}, + #{parent.id}, + #{parentIds}, + #{createBy.id}, + #{createDate}, + #{updateBy.id}, + #{updateDate}, + #{remarks}, + #{delFlag} + ) + + + + UPDATE test_tree SET + name = #{name}, + sort = #{sort}, + parent_id = #{parent.id}, + parent_ids = #{parentIds}, + update_by = #{updateBy.id}, + update_date = #{updateDate}, + remarks = #{remarks} + WHERE id = #{id} + + + + UPDATE test_tree SET + parent_id = #{parent.id}, + parent_ids = #{parentIds} + WHERE id = #{id} + + + + + DELETE FROM test_tree + WHERE id = #{id} OR parent_ids LIKE + '%'||#{id}||'%' + '%'+#{id}+'%' + concat('%',#{id},'%') + + + + + UPDATE test_tree SET + del_flag = #{DEL_FLAG_DELETE} + WHERE id = #{id} OR parent_ids LIKE + '%'||#{id}||'%' + '%'+#{id}+'%' + concat('%',#{id},'%') + + + \ No newline at end of file diff --git a/JeeSpringCloud/jeespring-web/src/main/resources/mappings/modules/ylttrip/TfTicketDao.xml b/JeeSpringCloud/jeespring-web/src/main/resources/mappings/modules/ylttrip/TfTicketDao.xml new file mode 100644 index 0000000000000000000000000000000000000000..73f76339a6a66deab50395a69c4e2125a1c87d64 --- /dev/null +++ b/JeeSpringCloud/jeespring-web/src/main/resources/mappings/modules/ylttrip/TfTicketDao.xml @@ -0,0 +1,377 @@ + + + + + + a.ticket_id AS "id", + a.ticket_no AS "ticketNo", + a.goods_no AS "goodsNo", + a.goods_item_id AS "goodsItemId", + a.goods_item_name AS "goodsItemName", + a.goods_num AS "goodsNum", + a.price AS "price", + a.sale_price AS "salePrice", + a.user_id AS "user.id", + a.order_date AS "orderDate", + a.state AS "state", + a.state_date AS "stateDate", + a.cust_name AS "custName", + a.link_phone AS "linkPhone", + a.address AS "address", + a.pay_type AS "payType", + a.logist_id AS "logistId", + a.logist_comp AS "logistComp", + a.checkin_code AS "checkinCode", + a.create_date AS "createDate", + a.reserve_id AS "reserveId", + a.remark AS "remark", + user.name AS "user.name" + + + + a.ticket_id AS "id", + a.ticket_no AS "ticketNo", + a.goods_no AS "goodsNo", + a.goods_item_id AS "goodsItemId", + a.goods_item_name AS "goodsItemName", + a.goods_num AS "goodsNum", + a.price AS "price", + a.sale_price AS "salePrice", + a.user_id AS "user.id", + a.order_date AS "orderDate", + a.state AS "state", + a.state_date AS "stateDate", + a.cust_name AS "custName", + a.link_phone AS "linkPhone", + a.address AS "address", + a.pay_type AS "payType", + a.logist_id AS "logistId", + a.logist_comp AS "logistComp", + a.checkin_code AS "checkinCode", + a.create_date AS "createDate", + a.reserve_id AS "reserveId", + a.remark AS "remark", + user.name AS "user.name" + + + + LEFT JOIN sys_user user ON user.id = a.user_id + + + + SELECT + + FROM tf_ticket a + + WHERE a.ticket_id = #{id} + + + + SELECT + + FROM tf_ticket a + + + + + AND a.ticket_id = #{id} + + + AND a.ticket_no = #{ticketNo} + + + AND a.goods_no = #{goodsNo} + + + AND a.goods_item_id = #{goodsItemId} + + + AND a.goods_item_name LIKE + '%'||#{goodsItemName}||'%' + '%'+#{goodsItemName}+'%' + concat('%',#{goodsItemName},'%') + + + AND a.goods_num = #{goodsNum} + + + AND a.price = #{price} + + + AND a.sale_price = #{salePrice} + + + AND a.user_id = #{user.id} + + + AND a.order_date BETWEEN #{beginOrderDate} AND #{endOrderDate} + + + AND a.state = #{state} + + + AND a.state_date BETWEEN #{beginStateDate} AND #{endStateDate} + + + AND a.cust_name LIKE + '%'||#{custName}||'%' + '%'+#{custName}+'%' + concat('%',#{custName},'%') + + + AND a.link_phone = #{linkPhone} + + + AND a.address = #{address} + + + AND a.pay_type = #{payType} + + + AND a.logist_id = #{logistId} + + + AND a.logist_comp = #{logistComp} + + + AND a.checkin_code = #{checkinCode} + + + AND a.reserve_id = #{reserveId} + + + AND a.remark = #{remark} + + + + + AND ${where} + + + ORDER BY ${page.orderBy} + + + + + + + + SELECT + + FROM tf_ticket a + + + + + + + ORDER BY ${page.orderBy} + + + + + + + + + select LAST_INSERT_ID() + + INSERT INTO tf_ticket( + ticket_no, + goods_no, + goods_item_id, + goods_item_name, + goods_num, + price, + sale_price, + user_id, + order_date, + state, + state_date, + cust_name, + link_phone, + address, + pay_type, + logist_id, + logist_comp, + checkin_code, + create_date, + reserve_id, + remark + ) VALUES ( + #{ticketNo}, + #{goodsNo}, + #{goodsItemId}, + #{goodsItemName}, + #{goodsNum}, + #{price}, + #{salePrice}, + #{user.id}, + #{orderDate}, + #{state}, + #{stateDate}, + #{custName}, + #{linkPhone}, + #{address}, + #{payType}, + #{logistId}, + #{logistComp}, + #{checkinCode}, + #{createDate}, + #{reserveId}, + #{remark} + ) + + + + UPDATE tf_ticket SET + ticket_id = #{id}, + ticket_no = #{ticketNo}, + goods_no = #{goodsNo}, + goods_item_id = #{goodsItemId}, + goods_item_name = #{goodsItemName}, + goods_num = #{goodsNum}, + price = #{price}, + sale_price = #{salePrice}, + user_id = #{user.id}, + order_date = #{orderDate}, + state = #{state}, + state_date = #{stateDate}, + cust_name = #{custName}, + link_phone = #{linkPhone}, + address = #{address}, + pay_type = #{payType}, + checkin_code = #{checkinCode}, + reserve_id = #{reserveId}, + remark = #{remark} + WHERE ticket_id = #{id} + + + + + + DELETE FROM tf_ticket + WHERE ticket_id = #{id} + + + + + UPDATE tf_ticket SET + del_flag = #{DEL_FLAG_DELETE} + WHERE ticket_id = #{id} + + + + select * FROM tf_ticket where ${propertyName} = '${value}' + + + + SELECT + sum(a.goods_num) as sumGoodsNum, + sum(a.price) as sumPrice, + sum(a.sale_price) as sumSalePrice, + + + DATE_FORMAT(a.create_date,'${totalType}') as totalDate, + + + + + count(*) as totalCount + FROM + tf_ticket a + + 1=1 + + + AND a.ticket_id = #{id} + + + AND a.ticket_no = #{ticketNo} + + + AND a.goods_no = #{goodsNo} + + + AND a.goods_item_id = #{goodsItemId} + + + AND a.goods_item_name LIKE + '%'||#{goodsItemName}||'%' + '%'+#{goodsItemName}+'%' + concat('%',#{goodsItemName},'%') + + + AND a.goods_num = #{goodsNum} + + + AND a.price = #{price} + + + AND a.sale_price = #{salePrice} + + + AND a.user_id = #{user.id} + + + AND a.order_date BETWEEN #{beginOrderDate} AND #{endOrderDate} + + + AND a.state = #{state} + + + AND a.state_date BETWEEN #{beginStateDate} AND #{endStateDate} + + + AND a.cust_name LIKE + '%'||#{custName}||'%' + '%'+#{custName}+'%' + concat('%',#{custName},'%') + + + AND a.link_phone = #{linkPhone} + + + AND a.address = #{address} + + + AND a.pay_type = #{payType} + + + AND a.logist_id = #{logistId} + + + AND a.logist_comp = #{logistComp} + + + AND a.checkin_code = #{checkinCode} + + + AND a.reserve_id = #{reserveId} + + + AND a.remark = #{remark} + + + + + GROUP BY DATE_FORMAT(a.create_date,'${totalType}'),${groupBy} + + + GROUP BY ${groupBy} + + + GROUP BY DATE_FORMAT(a.create_date,'${totalType}') + + + + + + + ORDER BY ${orderBy} + + + + + + \ No newline at end of file diff --git a/JeeSpringCloud/jeespring-web/src/main/resources/mybatis-config.xml b/JeeSpringCloud/jeespring-web/src/main/resources/mybatis-config.xml new file mode 100644 index 0000000000000000000000000000000000000000..2447422cb436d4023b85a68e729187911091103d --- /dev/null +++ b/JeeSpringCloud/jeespring-web/src/main/resources/mybatis-config.xml @@ -0,0 +1,52 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/JeeSpringCloud/jeespring-web/src/main/resources/spring-context-activiti.xml b/JeeSpringCloud/jeespring-web/src/main/resources/spring-context-activiti.xml new file mode 100644 index 0000000000000000000000000000000000000000..ca19e1d452800e837c59f22dbdcc74a397c6614a --- /dev/null +++ b/JeeSpringCloud/jeespring-web/src/main/resources/spring-context-activiti.xml @@ -0,0 +1,61 @@ + + + + Activiti Configuration + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/JeeSpringCloud/jeespring-web/src/main/resources/stencilset.json b/JeeSpringCloud/jeespring-web/src/main/resources/stencilset.json new file mode 100644 index 0000000000000000000000000000000000000000..e5e93dcfd0eecf64794c741ba5913a297de91d39 --- /dev/null +++ b/JeeSpringCloud/jeespring-web/src/main/resources/stencilset.json @@ -0,0 +1,1319 @@ +{ + "title" : "流程编辑器", + "namespace" : "http://b3mn.org/stencilset/bpmn2.0#", + "description" : "BPMN流程编辑器", + "propertyPackages" : [ { + "name" : "process_idpackage", + "properties" : [ { + "id" : "process_id", + "type" : "String", + "title" : "流程标识", + "value" : "process", + "description" : "Unique identifier of the process definition.", + "popular" : true + } ] + }, { + "name" : "overrideidpackage", + "properties" : [ { + "id" : "overrideid", + "type" : "String", + "title" : "主键(ID)", + "value" : "", + "description" : "流程唯一标识.", + "popular" : true + } ] + }, { + "name" : "namepackage", + "properties" : [ { + "id" : "name", + "type" : "String", + "title" : "名称", + "value" : "", + "description" : "BPMN元素名称.", + "popular" : true, + "refToView" : "text_name" + } ] + }, { + "name" : "documentationpackage", + "properties" : [ { + "id" : "documentation", + "type" : "Text", + "title" : "描述信息", + "value" : "", + "description" : "BPMN元素描述.", + "popular" : true + } ] + }, { + "name" : "process_authorpackage", + "properties" : [ { + "id" : "process_author", + "type" : "String", + "title" : "流程作者", + "value" : "", + "description" : "流程定义者姓名.", + "popular" : true + } ] + }, { + "name" : "process_versionpackage", + "properties" : [ { + "id" : "process_version", + "type" : "String", + "title" : "流程版本", + "value" : "", + "description" : "标识文档版本为目的.", + "popular" : true + } ] + }, { + "name" : "process_namespacepackage", + "properties" : [ { + "id" : "process_namespace", + "type" : "String", + "title" : "目标名称空间", + "value" : "http://www.activiti.org/processdef", + "description" : "工作流目标命名空间.", + "popular" : true + } ] + }, { + "name" : "asynchronousdefinitionpackage", + "properties" : [ { + "id" : "asynchronousdefinition", + "type" : "Boolean", + "title" : "异步", + "value" : "false", + "description" : "定义为一个异步任务.", + "popular" : true + } ] + }, { + "name" : "exclusivedefinitionpackage", + "properties" : [ { + "id" : "exclusivedefinition", + "type" : "Boolean", + "title" : "互斥任务", + "value" : "false", + "description" : "定义为一个互斥任务.", + "popular" : true + } ] + }, { + "name" : "executionlistenerspackage", + "properties" : [ { + "id" : "executionlisteners", + "type" : "multiplecomplex", + "title" : "执行监听器", + "value" : "", + "description" : "Listeners for an activity, process, sequence flow, start and end event.", + "popular" : true + } ] + }, { + "name" : "tasklistenerspackage", + "properties" : [ { + "id" : "tasklisteners", + "type" : "multiplecomplex", + "title" : "任务监听器", + "value" : "", + "description" : "监听用户任务.", + "popular" : true + } ] + }, { + "name" : "eventlistenerspackage", + "properties" : [ { + "id" : "eventlisteners", + "type" : "multiplecomplex", + "title" : "事件监听器", + "value" : "", + "description" : "Listeners for any event happening in the Activiti Engine. It's also possible to rethrow the event as a signal, message or error event", + "popular" : true + } ] + }, { + "name" : "usertaskassignmentpackage", + "properties" : [ { + "id" : "usertaskassignment", + "type" : "Complex", + "title" : "分配用户", + "value" : "", + "description" : "分配任务给用户", + "popular" : true + } ] + }, { + "name" : "formpropertiespackage", + "properties" : [ { + "id" : "formproperties", + "type" : "Complex", + "title" : "表单属性", + "value" : "", + "description" : "定义表单属性", + "popular" : true + } ] + }, { + "name" : "formkeydefinitionpackage", + "properties" : [ { + "id" : "formkeydefinition", + "type" : "String", + "title" : "表单编号", + "value" : "", + "description" : "用户任务表单编号.", + "popular" : true + } ] + }, { + "name" : "duedatedefinitionpackage", + "properties" : [ { + "id" : "duedatedefinition", + "type" : "String", + "title" : "到期时间", + "value" : "", + "description" : "用户任务到期时间.", + "popular" : true + } ] + }, { + "name" : "prioritydefinitionpackage", + "properties" : [ { + "id" : "prioritydefinition", + "type" : "String", + "title" : "优先级", + "value" : "", + "description" : "用户任务的优先级.", + "popular" : true + } ] + }, { + "name" : "servicetaskclasspackage", + "properties" : [ { + "id" : "servicetaskclass", + "type" : "String", + "title" : "类", + "value" : "", + "description" : "Class that implements the service task logic.", + "popular" : true + } ] + }, { + "name" : "servicetaskexpressionpackage", + "properties" : [ { + "id" : "servicetaskexpression", + "type" : "String", + "title" : "表达式", + "value" : "", + "description" : "服务任务 logic defined with an expression.", + "popular" : true + } ] + }, { + "name" : "servicetaskdelegateexpressionpackage", + "properties" : [ { + "id" : "servicetaskdelegateexpression", + "type" : "String", + "title" : "委托表达式", + "value" : "", + "description" : "服务任务 logic defined with a delegate expression.", + "popular" : true + } ] + }, { + "name" : "servicetaskfieldspackage", + "properties" : [ { + "id" : "servicetaskfields", + "type" : "Complex", + "title" : "类字段", + "value" : "", + "description" : "Field extensions", + "popular" : true + } ] + }, { + "name" : "servicetaskresultvariablepackage", + "properties" : [ { + "id" : "servicetaskresultvariable", + "type" : "String", + "title" : "结果变量名", + "value" : "", + "description" : "Process variable name to store the service task result.", + "popular" : true + } ] + }, { + "name" : "scriptformatpackage", + "properties" : [ { + "id" : "scriptformat", + "type" : "String", + "title" : "脚本格式", + "value" : "", + "description" : "Script format of the script task.", + "popular" : true + } ] + }, { + "name" : "scripttextpackage", + "properties" : [ { + "id" : "scripttext", + "type" : "Text", + "title" : "脚本", + "value" : "", + "description" : "Script text of the script task.", + "popular" : true + } ] + }, { + "name" : "ruletask_rulespackage", + "properties" : [ { + "id" : "ruletask_rules", + "type" : "String", + "title" : "规则", + "value" : "", + "description" : "Rules of the rule task.", + "popular" : true + } ] + }, { + "name" : "ruletask_variables_inputpackage", + "properties" : [ { + "id" : "ruletask_variables_input", + "type" : "String", + "title" : "输入变量", + "value" : "", + "description" : "Input variables of the rule task.", + "popular" : true + } ] + }, { + "name" : "ruletask_excludepackage", + "properties" : [ { + "id" : "ruletask_exclude", + "type" : "Boolean", + "title" : "排除", + "value" : "false", + "description" : "Use the rules property as exclusion.", + "popular" : true + } ] + }, { + "name" : "ruletask_resultpackage", + "properties" : [ { + "id" : "ruletask_result", + "type" : "String", + "title" : "结果变量", + "value" : "", + "description" : "Result variable of the rule task.", + "popular" : true + } ] + }, { + "name" : "mailtasktopackage", + "properties" : [ { + "id" : "mailtaskto", + "type" : "Text", + "title" : "至", + "value" : "", + "description" : "The recipients if the e-mail. Multiple recipients are defined in a comma-separated list.", + "popular" : true + } ] + }, { + "name" : "mailtaskfrompackage", + "properties" : [ { + "id" : "mailtaskfrom", + "type" : "Text", + "title" : "表单", + "value" : "", + "description" : "The sender e-mail address. If not provided, the default configured from address is used.", + "popular" : true + } ] + }, { + "name" : "mailtasksubjectpackage", + "properties" : [ { + "id" : "mailtasksubject", + "type" : "Text", + "title" : "主题", + "value" : "", + "description" : "The subject of the e-mail.", + "popular" : true + } ] + }, { + "name" : "mailtaskccpackage", + "properties" : [ { + "id" : "mailtaskcc", + "type" : "Text", + "title" : "抄送", + "value" : "", + "description" : "The cc's of the e-mail. Multiple recipients are defined in a comma-separated list", + "popular" : true + } ] + }, { + "name" : "mailtaskbccpackage", + "properties" : [ { + "id" : "mailtaskbcc", + "type" : "Text", + "title" : "隐藏抄送", + "value" : "", + "description" : "The bcc's of the e-mail. Multiple recipients are defined in a comma-separated list", + "popular" : true + } ] + }, { + "name" : "mailtasktextpackage", + "properties" : [ { + "id" : "mailtasktext", + "type" : "Text", + "title" : "文本", + "value" : "", + "description" : "The content of the e-mail, in case one needs to send plain none-rich e-mails. Can be used in combination with html, for e-mail clients that don't support rich content. The client will then fall back to this text-only alternative.", + "popular" : true + } ] + }, { + "name" : "mailtaskhtmlpackage", + "properties" : [ { + "id" : "mailtaskhtml", + "type" : "Text", + "title" : "Html", + "value" : "", + "description" : "A piece of HTML that is the content of the e-mail.", + "popular" : true + } ] + }, { + "name" : "mailtaskcharsetpackage", + "properties" : [ { + "id" : "mailtaskcharset", + "type" : "String", + "title" : "字符集(编码格式)", + "value" : "", + "description" : "修改邮件字符集,是许多除英语之外的语言所必须的. ", + "popular" : true + } ] + }, { + "name" : "callactivitycalledelementpackage", + "properties" : [ { + "id" : "callactivitycalledelement", + "type" : "String", + "title" : "调用元素", + "value" : "", + "description" : "流程引用.", + "popular" : true + } ] + }, { + "name" : "callactivityinparameterspackage", + "properties" : [ { + "id" : "callactivityinparameters", + "type" : "Complex", + "title" : "输入参数", + "value" : "", + "description" : "Definition of the input parameters", + "popular" : true + } ] + }, { + "name" : "callactivityoutparameterspackage", + "properties" : [ { + "id" : "callactivityoutparameters", + "type" : "Complex", + "title" : "输出参数", + "value" : "", + "description" : "Definition of the output parameters", + "popular" : true + } ] + }, { + "name" : "cameltaskcamelcontextpackage", + "properties" : [ { + "id" : "cameltaskcamelcontext", + "type" : "String", + "title" : "Camel context", + "value" : "", + "description" : "An optional camel context definition, if left empty the default is used.", + "popular" : true + } ] + }, { + "name" : "muletaskendpointurlpackage", + "properties" : [ { + "id" : "muletaskendpointurl", + "type" : "String", + "title" : "Endpoint url", + "value" : "", + "description" : "A required endpoint url to sent the message to Mule.", + "popular" : true + } ] + }, { + "name" : "muletasklanguagepackage", + "properties" : [ { + "id" : "muletasklanguage", + "type" : "String", + "title" : "语言", + "value" : "", + "description" : "A required definition for the language to resolve the payload expression, like juel.", + "popular" : true + } ] + }, { + "name" : "muletaskpayloadexpressionpackage", + "properties" : [ { + "id" : "muletaskpayloadexpression", + "type" : "String", + "title" : "Payload expression", + "value" : "", + "description" : "A required definition for the payload of the message sent to Mule.", + "popular" : true + } ] + }, { + "name" : "muletaskresultvariablepackage", + "properties" : [ { + "id" : "muletaskresultvariable", + "type" : "String", + "title" : "Result variable", + "value" : "", + "description" : "An optional result variable for the payload returned.", + "popular" : true + } ] + }, { + "name" : "conditionsequenceflowpackage", + "properties" : [ { + "id" : "conditionsequenceflow", + "type" : "Complex", + "title" : "流条件", + "value" : "", + "description" : "The condition of the sequence flow", + "popular" : true + } ] + }, { + "name" : "defaultflowpackage", + "properties" : [ { + "id" : "defaultflow", + "type" : "Boolean", + "title" : "默认流", + "value" : "false", + "description" : "Define the sequence flow as default", + "popular" : true, + "refToView" : "default" + } ] + }, { + "name" : "conditionalflowpackage", + "properties" : [ { + "id" : "conditionalflow", + "type" : "Boolean", + "title" : "条件流", + "value" : "false", + "description" : "Define the sequence flow with a condition", + "popular" : true + } ] + }, { + "name" : "timercycledefinitionpackage", + "properties" : [ { + "id" : "timercycledefinition", + "type" : "String", + "title" : "时间周期(e.g. R3/PT10H)", + "value" : "", + "description" : "Define the timer with a ISO-8601 cycle.", + "popular" : true + } ] + }, { + "name" : "timerdatedefinitionpackage", + "properties" : [ { + "id" : "timerdatedefinition", + "type" : "String", + "title" : "采用ISO-8601日期时间", + "value" : "", + "description" : "Define the timer with a ISO-8601 date definition.", + "popular" : true + } ] + }, { + "name" : "timerdurationdefinitionpackage", + "properties" : [ { + "id" : "timerdurationdefinition", + "type" : "String", + "title" : "持续时间(e.g. PT5M)", + "value" : "", + "description" : "Define the timer with a ISO-8601 duration.", + "popular" : true + } ] + }, { + "name" : "timerenddatedefinitionpackage", + "properties" : [ { + "id" : "timerenddatedefinition", + "type" : "String", + "title" : "Time End Date in ISO-8601", + "value" : "", + "description" : "Define the timer with a ISO-8601 duration.", + "popular" : true + } ] + }, { + "name" : "messagerefpackage", + "properties" : [ { + "id" : "messageref", + "type" : "String", + "title" : "消息引用", + "value" : "", + "description" : "Define the message name.", + "popular" : true + } ] + }, { + "name" : "signalrefpackage", + "properties" : [ { + "id" : "signalref", + "type" : "String", + "title" : "信号引用", + "value" : "", + "description" : "定义信号名称.", + "popular" : true + } ] + }, { + "name" : "errorrefpackage", + "properties" : [ { + "id" : "errorref", + "type" : "String", + "title" : "错误引用", + "value" : "", + "description" : "定义错误名称.", + "popular" : true + } ] + }, { + "name" : "cancelactivitypackage", + "properties" : [ { + "id" : "cancelactivity", + "type" : "Boolean", + "title" : "取消任务", + "value" : "true", + "description" : "Should the activity be cancelled", + "popular" : true, + "refToView" : [ "frame", "frame2" ] + } ] + }, { + "name" : "initiatorpackage", + "properties" : [ { + "id" : "initiator", + "type" : "String", + "title" : "启动器", + "value" : "", + "description" : "Initiator of the process.", + "popular" : true + } ] + }, { + "name" : "textpackage", + "properties" : [ { + "id" : "text", + "type" : "String", + "title" : "文本", + "value" : "", + "description" : "The text of the text annotation.", + "popular" : true, + "refToView" : "text" + } ] + }, { + "name" : "multiinstance_typepackage", + "properties" : [ { + "id" : "multiinstance_type", + "type" : "kisbpm-multiinstance", + "title" : "多实例类型", + "value" : "None", + "description" : "Repeated activity execution (parallel or sequential) can be displayed through different loop types", + "popular" : true, + "refToView" : "multiinstance" + } ] + }, { + "name" : "multiinstance_cardinalitypackage", + "properties" : [ { + "id" : "multiinstance_cardinality", + "type" : "String", + "title" : "基数(多实例)", + "value" : "", + "description" : "Define the cardinality of multi instance.", + "popular" : true + } ] + }, { + "name" : "multiinstance_collectionpackage", + "properties" : [ { + "id" : "multiinstance_collection", + "type" : "String", + "title" : "集合(多实例)", + "value" : "", + "description" : "Define the collection for the multi instance.", + "popular" : true + } ] + }, { + "name" : "multiinstance_variablepackage", + "properties" : [ { + "id" : "multiinstance_variable", + "type" : "String", + "title" : "元素变量(多实例)", + "value" : "", + "description" : "Define the element variable for the multi instance.", + "popular" : true + } ] + }, { + "name" : "multiinstance_conditionpackage", + "properties" : [ { + "id" : "multiinstance_condition", + "type" : "String", + "title" : "完成条件(多实例)", + "value" : "", + "description" : "Define the completion condition for the multi instance.", + "popular" : true + } ] + }, { + "name" : "isforcompensationpackage", + "properties" : [ { + "id" : "isforcompensation", + "type" : "Boolean", + "title" : "是否补偿", + "value" : "false", + "description" : "A flag that identifies whether this activity is intended for the purposes of compensation.", + "popular" : true, + "refToView" : "compensation" + } ] + }, { + "name" : "sequencefloworderpackage", + "properties" : [ { + "id" : "sequencefloworder", + "type" : "Complex", + "title" : "Flow order", + "value" : "", + "description" : "Order outgoing sequence flows.", + "popular" : true + } ] + }, { + "name" : "signaldefinitionspackage", + "properties" : [ { + "id" : "signaldefinitions", + "type" : "multiplecomplex", + "title" : "信号定义", + "value" : "", + "description" : "Signal definitions", + "popular" : true + } ] + }, { + "name" : "messagedefinitionspackage", + "properties" : [ { + "id" : "messagedefinitions", + "type" : "multiplecomplex", + "title" : "消息定义", + "value" : "", + "description" : "Message definitions", + "popular" : true + } ] + }, { + "name" : "istransactionpackage", + "properties" : [ { + "id" : "istransaction", + "type" : "Boolean", + "title" : "Is a transaction sub process", + "value" : "false", + "description" : "A flag that identifies whether this sub process is of type transaction.", + "popular" : true, + "refToView" : "border" + } ] + } ], + "stencils" : [ { + "type" : "node", + "id" : "BPMNDiagram", + "title" : "BPMN-Diagram", + "description" : "A BPMN 2.0 diagram.", + "view" : "\n\n \n \n \n \n \t\n \n", + "icon" : "diagram.png", + "groups" : [ "Diagram" ], + "mayBeRoot" : true, + "hide" : true, + "propertyPackages" : [ "process_idpackage", "namepackage", "documentationpackage", "process_authorpackage", "process_versionpackage", "process_namespacepackage", "executionlistenerspackage", "eventlistenerspackage", "signaldefinitionspackage", "messagedefinitionspackage" ], + "hiddenPropertyPackages" : [ ], + "roles" : [ ] + }, { + "type" : "node", + "id" : "StartNoneEvent", + "title" : "开始事件", + "description" : "A start event without a specific trigger", + "view" : "\n\n \n \n \t\n \n \n \n\t\n \n", + "icon" : "startevent/none.png", + "groups" : [ "开始事件" ], + "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "executionlistenerspackage", "initiatorpackage", "formkeydefinitionpackage", "formpropertiespackage" ], + "hiddenPropertyPackages" : [ ], + "roles" : [ "sequence_start", "Startevents_all", "StartEventsMorph", "all" ] + }, { + "type" : "node", + "id" : "StartTimerEvent", + "title" : "定时开始事件", + "description" : "有定时任务触发器的开始事件", + "view" : "\n\n \n \n \t\n \n \n \n \n \n \n \n\t\n \n", + "icon" : "startevent/timer.png", + "groups" : [ "开始事件" ], + "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "executionlistenerspackage", "timercycledefinitionpackage", "timerdatedefinitionpackage", "timerdurationdefinitionpackage" ], + "hiddenPropertyPackages" : [ ], + "roles" : [ "sequence_start", "Startevents_all", "StartEventsMorph", "all" ] + }, { + "type" : "node", + "id" : "StartSignalEvent", + "title" : "信号开始事件", + "description" : "有信号触发器的开始事件.", + "view" : "\n\n \n \n \t\n \n \n\n \n \n \n\t\n \n", + "icon" : "startevent/signal.png", + "groups" : [ "开始事件" ], + "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "executionlistenerspackage", "signalrefpackage" ], + "hiddenPropertyPackages" : [ ], + "roles" : [ "sequence_start", "Startevents_all", "StartEventsMorph", "all" ] + }, { + "type" : "node", + "id" : "StartMessageEvent", + "title" : "消息开始事件", + "description" : "有消息触发器的开始事件.", + "view" : "\n\n \n \n \t\n \n \n \n \n \n \n \n\t\n \n", + "icon" : "startevent/message.png", + "groups" : [ "开始事件" ], + "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "executionlistenerspackage", "messagerefpackage" ], + "hiddenPropertyPackages" : [ ], + "roles" : [ "sequence_start", "Startevents_all", "StartEventsMorph", "all" ] + }, { + "type" : "node", + "id" : "StartErrorEvent", + "title" : "错误开始事件", + "description" : "捕获抛出BMP错误的开始事件.", + "view" : "\n\n \n \n \t\n \n \n \n \n \n \n\t\n \n", + "icon" : "startevent/error.png", + "groups" : [ "开始事件" ], + "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "executionlistenerspackage", "errorrefpackage" ], + "hiddenPropertyPackages" : [ ], + "roles" : [ "sequence_start", "Startevents_all", "StartEventsMorph", "all" ] + }, { + "type" : "node", + "id" : "UserTask", + "title" : "用户任务", + "description" : "由特定用户完成的任务.", + "view" : "\n\n \n \n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \n \n\t\n\t\n\t\t\n\t\t\n\t\n\t\n\t\t\n\t\t\n\t\n \n\t\n\t\t\n\t\n\t\n\t\n\t\t\n\t\n\t\n\n\t\n\t\t\n\t\n \n", + "icon" : "activity/list/type.user.png", + "groups" : [ "任务" ], + "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "asynchronousdefinitionpackage", "exclusivedefinitionpackage", "executionlistenerspackage", "multiinstance_typepackage", "multiinstance_cardinalitypackage", "multiinstance_collectionpackage", "multiinstance_variablepackage", "multiinstance_conditionpackage", "isforcompensationpackage", "usertaskassignmentpackage", "formkeydefinitionpackage", "duedatedefinitionpackage", "prioritydefinitionpackage", "formpropertiespackage", "tasklistenerspackage" ], + "hiddenPropertyPackages" : [ ], + "roles" : [ "Activity", "sequence_start", "sequence_end", "ActivitiesMorph", "all" ] + }, { + "type" : "node", + "id" : "ServiceTask", + "title" : "服务任务", + "description" : "由服务逻辑自动完成的任务.", + "view" : "\n\n \n \n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \n \n\t\n\t\n\t\t\n\t\t\n\t\n\t\n\t\n\t\n \n\t\n\t\t\n\t\n\t\n\t\n\t\t\n\t\n\t\n\t\n\t\t\n\t\n \n", + "icon" : "activity/list/type.service.png", + "groups" : [ "任务" ], + "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "asynchronousdefinitionpackage", "exclusivedefinitionpackage", "executionlistenerspackage", "multiinstance_typepackage", "multiinstance_cardinalitypackage", "multiinstance_collectionpackage", "multiinstance_variablepackage", "multiinstance_conditionpackage", "isforcompensationpackage", "servicetaskclasspackage", "servicetaskexpressionpackage", "servicetaskdelegateexpressionpackage", "servicetaskfieldspackage", "servicetaskresultvariablepackage" ], + "hiddenPropertyPackages" : [ ], + "roles" : [ "Activity", "sequence_start", "sequence_end", "ActivitiesMorph", "all" ] + }, { + "type" : "node", + "id" : "ScriptTask", + "title" : "脚本任务", + "description" : "由脚本逻辑自动完成的任务.", + "view" : "\n\n \n \n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \n \n\t\n\t\n\t\t\n\t\t\n\t\n\t\n\t\t\n\t\n \n\t\n\t\t\n\t\n\t\n\t\t\n\t\n\t\n\n\t\n\t\t\n\t\n \n", + "icon" : "activity/list/type.script.png", + "groups" : [ "任务" ], + "propertyPackages" : [ "scriptformatpackage", "scripttextpackage", "overrideidpackage", "namepackage", "documentationpackage", "asynchronousdefinitionpackage", "exclusivedefinitionpackage", "executionlistenerspackage", "multiinstance_typepackage", "multiinstance_cardinalitypackage", "multiinstance_collectionpackage", "multiinstance_variablepackage", "multiinstance_conditionpackage", "isforcompensationpackage" ], + "hiddenPropertyPackages" : [ ], + "roles" : [ "Activity", "sequence_start", "sequence_end", "ActivitiesMorph", "all" ] + }, { + "type" : "node", + "id" : "BusinessRule", + "title" : "业务规则任务", + "description" : "由规则逻辑自动完成的任务.", + "view" : "\n\n \n \n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \n \n \t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\n\t\n\t\n\t\n\t\t\n\t\t\n \n\t\n\t\t\n\t\n\t\n\t\n\t\t\n\t\n\t\n\t\n\t\t\n\t\n\n\t\n\t\t\n\t\n \n", + "icon" : "activity/list/type.business.rule.png", + "groups" : [ "任务" ], + "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "asynchronousdefinitionpackage", "exclusivedefinitionpackage", "executionlistenerspackage", "multiinstance_typepackage", "multiinstance_cardinalitypackage", "multiinstance_collectionpackage", "multiinstance_variablepackage", "multiinstance_conditionpackage", "isforcompensationpackage", "ruletask_rulespackage", "ruletask_variables_inputpackage", "ruletask_excludepackage", "ruletask_resultpackage" ], + "hiddenPropertyPackages" : [ ], + "roles" : [ "Activity", "sequence_start", "sequence_end", "ActivitiesMorph", "all" ] + }, { + "type" : "node", + "id" : "ReceiveTask", + "title" : "接收任务", + "description" : "等待接收信号的任务.", + "view" : "\n\n \n \n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \n \n\t\n\t\n\t\t\n\t\t\n \n\t\n\t\t\n\t\n\t\n\t\n\t\t\n\t\n\t\n\t\n\t\t\n\t\n\n\t\n\t\t\n\t\n \n", + "icon" : "activity/list/type.receive.png", + "groups" : [ "任务" ], + "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "asynchronousdefinitionpackage", "exclusivedefinitionpackage", "executionlistenerspackage", "multiinstance_typepackage", "multiinstance_cardinalitypackage", "multiinstance_collectionpackage", "multiinstance_variablepackage", "multiinstance_conditionpackage", "isforcompensationpackage" ], + "hiddenPropertyPackages" : [ ], + "roles" : [ "Activity", "sequence_start", "sequence_end", "ActivitiesMorph", "all" ] + }, { + "type" : "node", + "id" : "ManualTask", + "title" : "人工任务", + "description" : "无需逻辑自动完成的任务.", + "view" : "\n\n \n \n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \n \n\t\n\t\n\t\t\n\t\t\n \n \t\n\t\n\t\n\t\n\t\t\n\t\n\t\n\t\n\t\t\n\t\n\n\t\n\t\t\n\t\n \n", + "icon" : "activity/list/type.manual.png", + "groups" : [ "任务" ], + "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "asynchronousdefinitionpackage", "exclusivedefinitionpackage", "executionlistenerspackage", "multiinstance_typepackage", "multiinstance_cardinalitypackage", "multiinstance_collectionpackage", "multiinstance_variablepackage", "multiinstance_conditionpackage", "isforcompensationpackage" ], + "hiddenPropertyPackages" : [ ], + "roles" : [ "Activity", "sequence_start", "sequence_end", "ActivitiesMorph", "all" ] + }, { + "type" : "node", + "id" : "MailTask", + "title" : "邮件任务", + "description" : "发送邮件通知的任务.", + "view" : "\n\n \n \n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \n \n\t\n\t\n\t\t\n\t\t\n \n\t\n\t\n\t\n\t\t\n\t\n\t\n\t\n\t\t\n\t\n\t\n\t\n\t\t\n\t\n\n\t\n\t\t\n\t\n \n", + "icon" : "activity/list/type.send.png", + "groups" : [ "任务" ], + "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "asynchronousdefinitionpackage", "exclusivedefinitionpackage", "executionlistenerspackage", "multiinstance_typepackage", "multiinstance_cardinalitypackage", "multiinstance_collectionpackage", "multiinstance_variablepackage", "multiinstance_conditionpackage", "isforcompensationpackage", "mailtasktopackage", "mailtaskfrompackage", "mailtasksubjectpackage", "mailtaskccpackage", "mailtaskbccpackage", "mailtasktextpackage", "mailtaskhtmlpackage", "mailtaskcharsetpackage" ], + "hiddenPropertyPackages" : [ ], + "roles" : [ "Activity", "sequence_start", "sequence_end", "ActivitiesMorph", "all" ] + }, { + "type" : "node", + "id" : "CamelTask", + "title" : "骆驼任务", + "description" : "An task that sends a message to Camel", + "view" : "\n\n \n \n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \n \n\t\n\t\n\t\t\n\t\t\n\t\n\t\n\t\t\n\t\n \n\t\n\t\t\n\t\n\t\n\t\t\n\t\n\t\n\n\t\n\t\t\n\t\n \n", + "icon" : "activity/list/type.camel.png", + "groups" : [ "任务" ], + "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "asynchronousdefinitionpackage", "exclusivedefinitionpackage", "executionlistenerspackage", "multiinstance_typepackage", "multiinstance_cardinalitypackage", "multiinstance_collectionpackage", "multiinstance_variablepackage", "multiinstance_conditionpackage", "isforcompensationpackage", "cameltaskcamelcontextpackage" ], + "hiddenPropertyPackages" : [ ], + "roles" : [ "Activity", "sequence_start", "sequence_end", "ActivitiesMorph", "all" ] + }, { + "type" : "node", + "id" : "MuleTask", + "title" : "Mule任务", + "description" : "An task that sends a message to Mule", + "view" : "\n\n \n \n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \n \n\t\n\t\n\t\t\n\t\t\n\t\n\t\n\t\t\n\t\n \n\t\n\t\t\n\t\n\t\n\t\t\n\t\n\t\n\n\t\n\t\t\n\t\n \n", + "icon" : "activity/list/type.mule.png", + "groups" : [ "任务" ], + "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "asynchronousdefinitionpackage", "exclusivedefinitionpackage", "executionlistenerspackage", "multiinstance_typepackage", "multiinstance_cardinalitypackage", "multiinstance_collectionpackage", "multiinstance_variablepackage", "multiinstance_conditionpackage", "isforcompensationpackage", "muletaskendpointurlpackage", "muletasklanguagepackage", "muletaskpayloadexpressionpackage", "muletaskresultvariablepackage" ], + "hiddenPropertyPackages" : [ ], + "roles" : [ "Activity", "sequence_start", "sequence_end", "ActivitiesMorph", "all" ] + }, { + "type" : "node", + "id" : "SendTask", + "title" : "发送任务", + "description" : "An task that sends a message", + "view" : "\n\n \n \n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \n \n\t\n\t\n\t\t\n\t\t\n \n\t\n\t\n\t\n\t\t\n\t\n\t\n\t\n\t\t\n\t\n\t\n\t\n\t\t\n\t\n\n\t\n\t\t\n\t\n \n", + "icon" : "activity/list/type.send.png", + "groups" : [ "任务" ], + "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "asynchronousdefinitionpackage", "exclusivedefinitionpackage", "executionlistenerspackage", "multiinstance_typepackage", "multiinstance_cardinalitypackage", "multiinstance_collectionpackage", "multiinstance_variablepackage", "multiinstance_conditionpackage", "isforcompensationpackage" ], + "hiddenPropertyPackages" : [ ], + "roles" : [ "Activity", "sequence_start", "sequence_end", "ActivitiesMorph", "all" ] + }, { + "type" : "node", + "id" : "SubProcess", + "title" : "子流程", + "description" : "子流程范围", + "view" : "\n\n \n \n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \n \n \n\t\n\t\n\t\n\t\n\t\n\t\t\n\t\n\t\n\t\t\n\t\n \n", + "icon" : "activity/expanded.subprocess.png", + "groups" : [ "结构" ], + "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "asynchronousdefinitionpackage", "exclusivedefinitionpackage", "executionlistenerspackage", "multiinstance_typepackage", "multiinstance_cardinalitypackage", "multiinstance_collectionpackage", "multiinstance_variablepackage", "multiinstance_conditionpackage" ], + "hiddenPropertyPackages" : [ ], + "roles" : [ "Activity", "sequence_start", "sequence_end", "all" ] + }, { + "type" : "node", + "id" : "EventSubProcess", + "title" : "事件子流程", + "description" : "事件周日子流程范围", + "view" : "\n\n \n \n \t\n \t\n \t\n \t\n \t\n \n \n\t\n\t\n \t\n\t\t\n \t\n\t\n\t\n \n", + "icon" : "activity/event.subprocess.png", + "groups" : [ "结构" ], + "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "asynchronousdefinitionpackage", "exclusivedefinitionpackage", "executionlistenerspackage" ], + "hiddenPropertyPackages" : [ ], + "roles" : [ "Activity", "all" ] + }, { + "type" : "node", + "id" : "CallActivity", + "title" : "调用活动", + "description" : "A call activity", + "view" : "\n\n \n \n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \n \n\t\n \n\t\n\t\t\n\t\t\n \n\t\n\t\t\n\t\n\t\n\t\n\t\t\n\t\n\n\t\n\t\t\n\t\n \n", + "icon" : "activity/task.png", + "groups" : [ "结构" ], + "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "asynchronousdefinitionpackage", "exclusivedefinitionpackage", "executionlistenerspackage", "callactivitycalledelementpackage", "callactivityinparameterspackage", "callactivityoutparameterspackage", "multiinstance_typepackage", "multiinstance_cardinalitypackage", "multiinstance_collectionpackage", "multiinstance_variablepackage", "multiinstance_conditionpackage", "isforcompensationpackage" ], + "hiddenPropertyPackages" : [ ], + "roles" : [ "Activity", "sequence_start", "sequence_end", "all" ] + }, { + "type" : "node", + "id" : "ExclusiveGateway", + "title" : "互斥网关", + "description" : "一个选择的网关", + "view" : "\n\n \n \n \n \t\t\t\t\t\n \n \n \n \n \n \n \n\t\n\t\n\t\n \n\n", + "icon" : "gateway/exclusive.databased.png", + "groups" : [ "网关" ], + "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "sequencefloworderpackage" ], + "hiddenPropertyPackages" : [ ], + "roles" : [ "sequence_start", "GatewaysMorph", "sequence_end", "all" ] + }, { + "type" : "node", + "id" : "ParallelGateway", + "title" : "并行网关", + "description" : "并行处理的网关", + "view" : "\n\n \n \n \n \n \n \n \n \n\t\n\t\n \n\n", + "icon" : "gateway/parallel.png", + "groups" : [ "网关" ], + "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "sequencefloworderpackage" ], + "hiddenPropertyPackages" : [ ], + "roles" : [ "sequence_start", "GatewaysMorph", "sequence_end", "all" ] + }, { + "type" : "node", + "id" : "InclusiveGateway", + "title" : "包容性网关", + "description" : "An inclusive gateway", + "view" : "\n\n \n \n \n \n\n \n \n \n\t\n\t\n \n\n", + "icon" : "gateway/inclusive.png", + "groups" : [ "网关" ], + "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "sequencefloworderpackage" ], + "hiddenPropertyPackages" : [ ], + "roles" : [ "sequence_start", "GatewaysMorph", "sequence_end", "all" ] + }, { + "type" : "node", + "id" : "EventGateway", + "title" : "事件网关", + "description" : "An event gateway", + "view" : "\n\n \n \n \n \n \n \t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\t\n\t\t\n\t\t\n\t\n\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\n\t\n\t\n\t\n\t\n \t\n\t\n\n", + "icon" : "gateway/eventbased.png", + "groups" : [ "网关" ], + "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "sequencefloworderpackage" ], + "hiddenPropertyPackages" : [ ], + "roles" : [ "sequence_start", "GatewaysMorph", "sequence_end", "all" ] + }, { + "type" : "node", + "id" : "BoundaryErrorEvent", + "title" : "边界错误事件", + "description" : "A boundary event that catches a BPMN error", + "view" : "\n\n \n \n \t\n \n \n \n \n \n \n \n\t\n \n", + "icon" : "catching/error.png", + "groups" : [ "边界事件" ], + "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "errorrefpackage" ], + "hiddenPropertyPackages" : [ ], + "roles" : [ "sequence_start", "BoundaryEventsMorph", "IntermediateEventOnActivityBoundary" ] + }, { + "type" : "node", + "id" : "BoundaryTimerEvent", + "title" : "边界定时事件", + "description" : "A boundary event with a timer trigger", + "view" : "\n\n \n \n \t\n \n \n \n \n \t\n \n \n \n \n \n \n \t\n\t\n \n", + "icon" : "catching/timer.png", + "groups" : [ "边界事件" ], + "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "timercycledefinitionpackage", "timerdatedefinitionpackage", "timerdurationdefinitionpackage", "cancelactivitypackage" ], + "hiddenPropertyPackages" : [ ], + "roles" : [ "sequence_start", "BoundaryEventsMorph", "IntermediateEventOnActivityBoundary" ] + }, { + "type" : "node", + "id" : "BoundarySignalEvent", + "title" : "边界信号事件", + "description" : "A boundary event with a signal trigger", + "view" : "\n\n \n \n \t\n \n \n \n \n \t\n \n \n \n \n\t\n\t\n \n", + "icon" : "catching/signal.png", + "groups" : [ "边界事件" ], + "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "signalrefpackage", "cancelactivitypackage" ], + "hiddenPropertyPackages" : [ ], + "roles" : [ "sequence_start", "BoundaryEventsMorph", "IntermediateEventOnActivityBoundary" ] + }, { + "type" : "node", + "id" : "BoundaryMessageEvent", + "title" : "边界消息事件", + "description" : "A boundary event with a message trigger", + "view" : "\n\n \n \n \t\n \n \n \n \n \t\n \n \t\n \n \n \n\t\n\t\t\n\t\n\t\n\t\n \n", + "icon" : "catching/message.png", + "groups" : [ "边界事件" ], + "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "messagerefpackage" ], + "hiddenPropertyPackages" : [ ], + "roles" : [ "sequence_start", "BoundaryEventsMorph", "IntermediateEventOnActivityBoundary" ] + }, { + "type" : "node", + "id" : "BoundaryCancelEvent", + "title" : "边界取消事件", + "description" : "A boundary cancel event", + "view" : "\n\n \n \n \t\n \n \n \n \n \n \n \n \n\t\n \n", + "icon" : "catching/cancel.png", + "groups" : [ "边界事件" ], + "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage" ], + "hiddenPropertyPackages" : [ ], + "roles" : [ "sequence_start", "BoundaryEventsMorph", "IntermediateEventOnActivityBoundary" ] + }, { + "type" : "node", + "id" : "BoundaryCompensationEvent", + "title" : "边界补偿事件", + "description" : "A boundary compensation event", + "view" : "\n\n \n \n \t\n \n \n \n\t\n \n \n \n \n \n\t\n \n", + "icon" : "catching/compensation.png", + "groups" : [ "边界事件" ], + "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage" ], + "hiddenPropertyPackages" : [ ], + "roles" : [ "BoundaryEventsMorph", "IntermediateEventOnActivityBoundary", "all" ] + }, { + "type" : "node", + "id" : "CatchTimerEvent", + "title" : "中间定时器捕获事件", + "description" : "An intermediate catching event with a timer trigger", + "view" : "\n\n \n \n \t\n \n \n \n \n \t\n \n \n \n \n \n \n \t\n\t\n \n", + "icon" : "catching/timer.png", + "groups" : [ "中间捕捉事件" ], + "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "executionlistenerspackage", "timercycledefinitionpackage", "timerdatedefinitionpackage", "timerdurationdefinitionpackage" ], + "hiddenPropertyPackages" : [ ], + "roles" : [ "sequence_start", "sequence_end", "CatchEventsMorph", "all" ] + }, { + "type" : "node", + "id" : "CatchSignalEvent", + "title" : "中间信号捕捉事件", + "description" : "An intermediate catching event with a signal trigger", + "view" : "\n\n \n \n \t\n \n \n \n \n \t\n \n \n \n \n\t\n\t\n \n", + "icon" : "catching/signal.png", + "groups" : [ "中间捕捉事件" ], + "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "executionlistenerspackage", "signalrefpackage" ], + "hiddenPropertyPackages" : [ ], + "roles" : [ "sequence_start", "sequence_end", "CatchEventsMorph", "all" ] + }, { + "type" : "node", + "id" : "CatchMessageEvent", + "title" : "中间消息捕捉事件", + "description" : "An intermediate catching event with a message trigger", + "view" : "\n\n \n \n \t\n \n \n \n \n \t\n \n \t\n \n \n \n\t\n\t\t\n\t\n\t\n\t\n \n", + "icon" : "catching/message.png", + "groups" : [ "中间捕捉事件" ], + "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "executionlistenerspackage", "messagerefpackage" ], + "hiddenPropertyPackages" : [ ], + "roles" : [ "sequence_start", "sequence_end", "CatchEventsMorph", "all" ] + }, { + "type" : "node", + "id" : "ThrowNoneEvent", + "title" : "中间无抛出事件", + "description" : "An intermediate event without a specific trigger", + "view" : "\n\n \n \n \t\n \n \n \n \n \n \n\t\n \n", + "icon" : "throwing/none.png", + "groups" : [ "中间抛出事件" ], + "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "executionlistenerspackage" ], + "hiddenPropertyPackages" : [ ], + "roles" : [ "ThrowEventsMorph", "sequence_start", "sequence_end", "all" ] + }, { + "type" : "node", + "id" : "ThrowSignalEvent", + "title" : "中间信号抛出事件", + "description" : "An intermediate event with a signal trigger", + "view" : "\n\n \n \n \t\n \n \n \n \n \n \n\t\n \n", + "icon" : "throwing/signal.png", + "groups" : [ "中间抛出事件" ], + "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "executionlistenerspackage", "signalrefpackage" ], + "hiddenPropertyPackages" : [ ], + "roles" : [ "ThrowEventsMorph", "sequence_start", "sequence_end", "all" ] + }, { + "type" : "node", + "id" : "EndNoneEvent", + "title" : "结束事件", + "description" : "An end event without a specific trigger", + "view" : "\n\n \n \n \t\n \n \n \n\t\n \n", + "icon" : "endevent/none.png", + "groups" : [ "结束事件" ], + "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "executionlistenerspackage" ], + "hiddenPropertyPackages" : [ ], + "roles" : [ "EndEventsMorph", "sequence_end", "all" ] + }, { + "type" : "node", + "id" : "EndErrorEvent", + "title" : "结束错误事件", + "description" : "An end event that throws an error event", + "view" : "\n\n \n \n \t\n \n \n \n \n \n \n\t\n \n", + "icon" : "endevent/error.png", + "groups" : [ "结束事件" ], + "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "executionlistenerspackage", "errorrefpackage" ], + "hiddenPropertyPackages" : [ ], + "roles" : [ "EndEventsMorph", "sequence_end", "all" ] + }, { + "type" : "node", + "id" : "EndCancelEvent", + "title" : "结束取消事件", + "description" : "A cancel end event", + "view" : "\n\n \n \n \t\n \n \n \n \n \n\t\n \n", + "icon" : "endevent/cancel.png", + "groups" : [ "结束事件" ], + "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "executionlistenerspackage" ], + "hiddenPropertyPackages" : [ ], + "roles" : [ "EndEventsMorph", "sequence_end", "all" ] + }, { + "type" : "node", + "id" : "EndTerminateEvent", + "title" : "结束终止事件", + "description" : "A terminate end event", + "view" : "\n\n \n \n \t\n \n \n \n \n \n\t\n \n", + "icon" : "endevent/terminate.png", + "groups" : [ "结束事件" ], + "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "executionlistenerspackage" ], + "hiddenPropertyPackages" : [ ], + "roles" : [ "EndEventsMorph", "sequence_end", "all" ] + }, { + "type" : "node", + "id" : "Pool", + "title" : "池", + "description" : "A pool to stucture the process definition", + "view" : "\n\n \n \n \t\n \t\n \t\n \t\n \t\n \n \n \n\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\n\t \t\n \t\n \n \n\t\n\t\n\t\n\t\n \n \n \n", + "icon" : "swimlane/pool.png", + "groups" : [ "泳道" ], + "layout" : [ { + "type" : "layout.bpmn2_0.pool" + } ], + "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "process_idpackage" ], + "hiddenPropertyPackages" : [ ], + "roles" : [ "canContainArtifacts", "all" ] + }, { + "type" : "node", + "id" : "Lane", + "title" : "道", + "description" : "A lane to stucture the process definition", + "view" : "\n\n \n \n \n \n\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\n\t\n \t\t\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n \n\t\n \n", + "icon" : "swimlane/lane.png", + "groups" : [ "泳道" ], + "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage" ], + "hiddenPropertyPackages" : [ ], + "roles" : [ "PoolChild", "canContainArtifacts", "all" ] + }, { + "type" : "edge", + "id" : "SequenceFlow", + "title" : "Sequence flow", + "description" : "Sequence flow defines the execution order of activities.", + "view" : "\r\n\r\n\t\r\n\t \t\r\n\t \t\t\r\n\t\t\t\r\n\t \t\r\n\t \t\r\n\t \t\t\r\n\t \t\r\n\t\r\n\t\r\n\t\t\r\n\t\t\r\n\t\r\n", + "icon" : "connector/sequenceflow.png", + "groups" : [ "链接对象" ], + "layout" : [ { + "type" : "layout.bpmn2_0.sequenceflow" + } ], + "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "conditionsequenceflowpackage", "executionlistenerspackage", "defaultflowpackage" ], + "hiddenPropertyPackages" : [ ], + "roles" : [ "ConnectingObjectsMorph", "all" ] + }, { + "type" : "edge", + "id" : "MessageFlow", + "title" : "Message flow", + "description" : "Message flow to connect elements in different pools.", + "view" : "\r\n\r\n\t\r\n\t\t\r\n\t \t\t\r\n\t \t\t\r\n\t \t\r\n\r\n\t \t\r\n\t \t\t\r\n\t \t\r\n\t\r\n\t\r\n\t \r\n\t\t\r\n\t\r\n", + "icon" : "connector/messageflow.png", + "groups" : [ "链接对象" ], + "layout" : [ { + "type" : "layout.bpmn2_0.sequenceflow" + } ], + "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage" ], + "hiddenPropertyPackages" : [ ], + "roles" : [ "ConnectingObjectsMorph", "all" ] + }, { + "type" : "edge", + "id" : "Association", + "title" : "Association", + "description" : "Associates a text annotation with an element.", + "view" : "\r\n\r\n\t\r\n\t \r\n\t\t\r\n\t\r\n", + "icon" : "connector/association.undirected.png", + "groups" : [ "链接对象" ], + "layout" : [ { + "type" : "layout.bpmn2_0.sequenceflow" + } ], + "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage" ], + "hiddenPropertyPackages" : [ ], + "roles" : [ "ConnectingObjectsMorph", "all" ] + }, { + "type" : "edge", + "id" : "DataAssociation", + "title" : "DataAssociation", + "description" : "Associates a data element with an activity.", + "view" : "\r\n\r\n\t\r\n\t \t\r\n\t \t\t\r\n\t \t\r\n\t\r\n\t\r\n\t \r\n\t\t\r\n\t\r\n", + "icon" : "connector/association.unidirectional.png", + "groups" : [ "链接对象" ], + "layout" : [ { + "type" : "layout.bpmn2_0.sequenceflow" + } ], + "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage" ], + "hiddenPropertyPackages" : [ ], + "roles" : [ "ConnectingObjectsMorph", "all" ] + }, { + "type" : "node", + "id" : "TextAnnotation", + "title" : "文本注释", + "description" : "Annotates elements with description text.", + "view" : "\n\n \n \n \t\n \n \n \n \n \n \n\t\n \n", + "icon" : "artifact/text.annotation.png", + "groups" : [ "组件" ], + "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "textpackage" ], + "hiddenPropertyPackages" : [ ], + "roles" : [ "all" ] + }, { + "type" : "node", + "id" : "DataStore", + "title" : "Data store", + "description" : "Reference to a data store.", + "view" : "\r\n\r\n\t\r\n\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\r\n\t\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\t\t \t\r\n\t\t\r\n\t\t\t \r\n\t\r\n\r\n", + "icon" : "dataobject/data.store.png", + "groups" : [ "组件" ], + "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage" ], + "hiddenPropertyPackages" : [ ], + "roles" : [ "all" ] + } ], + "rules" : { + "cardinalityRules" : [ { + "role" : "Startevents_all", + "incomingEdges" : [ { + "role" : "SequenceFlow", + "maximum" : 0 + } ] + }, { + "role" : "Endevents_all", + "outgoingEdges" : [ { + "role" : "SequenceFlow", + "maximum" : 0 + } ] + } ], + "connectionRules" : [ { + "role" : "SequenceFlow", + "connects" : [ { + "from" : "sequence_start", + "to" : [ "sequence_end" ] + } ] + }, { + "role" : "Association", + "connects" : [ { + "from" : "sequence_start", + "to" : [ "TextAnnotation" ] + }, { + "from" : "sequence_end", + "to" : [ "TextAnnotation" ] + }, { + "from" : "TextAnnotation", + "to" : [ "sequence_end" ] + }, { + "from" : "BoundaryCompensationEvent", + "to" : [ "sequence_end" ] + }, { + "from" : "TextAnnotation", + "to" : [ "sequence_start" ] + }, { + "from" : "BoundaryCompensationEvent", + "to" : [ "sequence_start" ] + } ] + }, { + "role" : "DataAssociation", + "connects" : [ { + "from" : "sequence_start", + "to" : [ "DataStore" ] + }, { + "from" : "sequence_end", + "to" : [ "DataStore" ] + }, { + "from" : "DataStore", + "to" : [ "sequence_end" ] + }, { + "from" : "DataStore", + "to" : [ "sequence_start" ] + } ] + }, { + "role" : "IntermediateEventOnActivityBoundary", + "connects" : [ { + "from" : "Activity", + "to" : [ "IntermediateEventOnActivityBoundary" ] + } ] + } ], + "containmentRules" : [ { + "role" : "BPMNDiagram", + "contains" : [ "all" ] + }, { + "role" : "SubProcess", + "contains" : [ "sequence_start", "sequence_end", "from_task_event", "to_task_event", "EventSubProcess", "TextAnnotation", "DataStore" ] + }, { + "role" : "EventSubProcess", + "contains" : [ "sequence_start", "sequence_end", "from_task_event", "to_task_event", "TextAnnotation", "DataStore" ] + }, { + "role" : "Pool", + "contains" : [ "Lane" ] + }, { + "role" : "Lane", + "contains" : [ "sequence_start", "sequence_end", "EventSubProcess", "TextAnnotation", "DataStore" ] + } ], + "morphingRules" : [ { + "role" : "ActivitiesMorph", + "baseMorphs" : [ "UserTask" ], + "preserveBounds" : true + }, { + "role" : "GatewaysMorph", + "baseMorphs" : [ "ExclusiveGateway" ] + }, { + "role" : "StartEventsMorph", + "baseMorphs" : [ "StartNoneEvent" ] + }, { + "role" : "EndEventsMorph", + "baseMorphs" : [ "StartNoneEvent" ] + }, { + "role" : "CatchEventsMorph", + "baseMorphs" : [ "CatchTimerEvent" ] + }, { + "role" : "ThrowEventsMorph", + "baseMorphs" : [ "ThrowNoneEvent" ] + }, { + "role" : "BoundaryEventsMorph", + "baseMorphs" : [ "ThrowNoneEvent" ] + }, { + "role" : "BoundaryCompensationEvent", + "baseMorphs" : [ "BoundaryCompensationEvent" ] + }, { + "role" : "TextAnnotation", + "baseMorphs" : [ "TextAnnotation" ] + }, { + "role" : "DataStore", + "baseMorphs" : [ "DataStore" ] + } ] + } +} \ No newline at end of file diff --git a/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/lib/QRCode-1.5.jar b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/lib/QRCode-1.5.jar new file mode 100644 index 0000000000000000000000000000000000000000..2b84560c05c84d5a1bd9bcdbe0bea06059a13f14 Binary files /dev/null and b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/lib/QRCode-1.5.jar differ diff --git a/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/lib/UserAgentUtils-1.13.jar b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/lib/UserAgentUtils-1.13.jar new file mode 100644 index 0000000000000000000000000000000000000000..bbaa97e3861f05f00557dd82a82d0ff953a1f9e1 Binary files /dev/null and b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/lib/UserAgentUtils-1.13.jar differ diff --git a/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/lib/analyzer-2012_u6.jar b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/lib/analyzer-2012_u6.jar new file mode 100644 index 0000000000000000000000000000000000000000..e3d9aa6f3a8840ad8e9fadf04f68ac5b914df6a2 Binary files /dev/null and b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/lib/analyzer-2012_u6.jar differ diff --git a/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/lib/apache-ant-zip-2.3.jar b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/lib/apache-ant-zip-2.3.jar new file mode 100644 index 0000000000000000000000000000000000000000..61dbfb33d101392b717d509cb6720fe1d71497e6 Binary files /dev/null and b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/lib/apache-ant-zip-2.3.jar differ diff --git a/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/lib/ckfinder-2.3.jar b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/lib/ckfinder-2.3.jar new file mode 100644 index 0000000000000000000000000000000000000000..4c2bf84eba1b7d06ed415eede05f5cfc58c4cb75 Binary files /dev/null and b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/lib/ckfinder-2.3.jar differ diff --git a/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/lib/ckfinderplugin-fileeditor-2.3.jar b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/lib/ckfinderplugin-fileeditor-2.3.jar new file mode 100644 index 0000000000000000000000000000000000000000..7dfa908c06aa1d994056ca873d1a2c171872e5cc Binary files /dev/null and b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/lib/ckfinderplugin-fileeditor-2.3.jar differ diff --git a/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/lib/ckfinderplugin-imageresize-2.3.jar b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/lib/ckfinderplugin-imageresize-2.3.jar new file mode 100644 index 0000000000000000000000000000000000000000..526f8ff187faa6d34e8a4630deaf4c1ba7adcfff Binary files /dev/null and b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/lib/ckfinderplugin-imageresize-2.3.jar differ diff --git a/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/lib/ojdbc14-10.2.0.4.0.jar b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/lib/ojdbc14-10.2.0.4.0.jar new file mode 100644 index 0000000000000000000000000000000000000000..f41cf1ae9fb28a9defda0b9e78e7faa3ef36d555 Binary files /dev/null and b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/lib/ojdbc14-10.2.0.4.0.jar differ diff --git a/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/lib/thumbnailator-0.4.2.jar b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/lib/thumbnailator-0.4.2.jar new file mode 100644 index 0000000000000000000000000000000000000000..b1b96cd220cd9f6a9a6820616089753b70350b84 Binary files /dev/null and b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/lib/thumbnailator-0.4.2.jar differ diff --git a/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/tags/act/act.txt b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/tags/act/act.txt new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/tags/act/histoicFlow.tag b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/tags/act/histoicFlow.tag new file mode 100644 index 0000000000000000000000000000000000000000..5748b1135ae43276450a047cbe077832268337ca --- /dev/null +++ b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/tags/act/histoicFlow.tag @@ -0,0 +1,16 @@ +<%@ tag language="java" pageEncoding="UTF-8"%> +<%@ include file="/WEB-INF/views/include/taglib.jsp"%> +<%@ attribute name="procInsId" type="java.lang.String" required="true" description="流程实例ID"%> +<%@ attribute name="startAct" type="java.lang.String" required="false" description="开始活动节点名称"%> +<%@ attribute name="endAct" type="java.lang.String" required="false" description="结束活动节点名称"%> + + 流转信息 + + 正在加载流转信息... + + + \ No newline at end of file diff --git a/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/tags/cms/frontArticleHitsTop.tag b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/tags/cms/frontArticleHitsTop.tag new file mode 100644 index 0000000000000000000000000000000000000000..8e8c73d2e9fa567753f1b0f42e6538f26e8be4e5 --- /dev/null +++ b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/tags/cms/frontArticleHitsTop.tag @@ -0,0 +1,7 @@ +<%@ tag language="java" pageEncoding="UTF-8"%> +<%@ include file="/WEB-INF/views/modules/cms/front/include/taglib.jsp"%> +<%@ attribute name="category" type="com.jeespring.modules.cms.entity.Category" required="true" description="栏目对象"%> +<%@ attribute name="pageSize" type="java.lang.Integer" required="false" description="页面大小"%> + + ${fns:abbr(article.title,16)} + \ No newline at end of file diff --git a/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/tags/cms/frontCategoryList.tag b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/tags/cms/frontCategoryList.tag new file mode 100644 index 0000000000000000000000000000000000000000..528d95d4b11a3eff71e92f38161813d4422d271f --- /dev/null +++ b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/tags/cms/frontCategoryList.tag @@ -0,0 +1,22 @@ +<%@ tag language="java" pageEncoding="UTF-8"%> +<%@ include file="/WEB-INF/views/modules/cms/front/include/taglib.jsp"%> +<%@ attribute name="categoryList" type="java.util.List" required="true" description="栏目列表"%> + + <%-- --%> + + + + + + + + + + + + ${tpl.name} + + ${tpl.name} + + <%-- --%> + \ No newline at end of file diff --git a/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/tags/cms/frontCurrentPosition.tag b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/tags/cms/frontCurrentPosition.tag new file mode 100644 index 0000000000000000000000000000000000000000..b7eb7e4ac6f59e25acfe9fd24ef5c99aa5708493 --- /dev/null +++ b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/tags/cms/frontCurrentPosition.tag @@ -0,0 +1,6 @@ +<%@ tag language="java" pageEncoding="UTF-8"%> +<%@ include file="/WEB-INF/views/modules/cms/front/include/taglib.jsp"%> +<%@ attribute name="category" type="com.jeespring.modules.cms.entity.Category" required="true" description="栏目对象"%> +当前位置:首页 + / ${tpl.name} +/ ${category.name} \ No newline at end of file diff --git a/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/tags/sys/ckeditor.tag b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/tags/sys/ckeditor.tag new file mode 100644 index 0000000000000000000000000000000000000000..65d92afe1273fd783f0b1ae9c80874fc1b6dd939 --- /dev/null +++ b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/tags/sys/ckeditor.tag @@ -0,0 +1,13 @@ +<%@ tag language="java" pageEncoding="UTF-8"%> +<%@ include file="/WEB-INF/views/include/taglib.jsp"%> +<%@ attribute name="replace" type="java.lang.String" required="true" description="需要替换的textarea编号"%> +<%@ attribute name="uploadPath" type="java.lang.String" required="false" description="文件上传路径,路径后自动添加年份。若不指定,则编辑器不可上传文件"%> +<%@ attribute name="height" type="java.lang.String" required="false" description="编辑器高度"%> + + \ No newline at end of file diff --git a/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/tags/sys/ckfinder.tag b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/tags/sys/ckfinder.tag new file mode 100644 index 0000000000000000000000000000000000000000..dedd8a8dc76cfee81d6508f42fcfa246861a8818 --- /dev/null +++ b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/tags/sys/ckfinder.tag @@ -0,0 +1,91 @@ +<%@ tag language="java" pageEncoding="UTF-8" %> +<%@ include file="/WEB-INF/views/include/taglib.jsp" %> +<%@ attribute name="input" type="java.lang.String" required="true" description="输入框" %> +<%@ attribute name="type" type="java.lang.String" required="true" description="files、images、flash、thumb" %> +<%@ attribute name="uploadPath" type="java.lang.String" required="true" description="打开文件管理的上传路径" %> +<%@ attribute name="selectMultiple" type="java.lang.Boolean" required="false" description="是否允许多选" %> +<%@ attribute name="readonly" type="java.lang.Boolean" required="false" description="是否查看模式" %> +<%@ attribute name="maxWidth" type="java.lang.String" required="false" description="最大宽度" %> +<%@ attribute name="maxHeight" type="java.lang.String" required="false" description="最大高度" %> + +${selectMultiple?'添加':'选择'} 清除 + \ No newline at end of file diff --git a/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/tags/sys/iconselect.tag b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/tags/sys/iconselect.tag new file mode 100644 index 0000000000000000000000000000000000000000..ee8706edb19fcee5dd729e1c80db9bea41b922ff --- /dev/null +++ b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/tags/sys/iconselect.tag @@ -0,0 +1,34 @@ +<%@ tag language="java" pageEncoding="UTF-8"%> +<%@ include file="/WEB-INF/views/include/taglib.jsp"%> +<%@ attribute name="id" type="java.lang.String" required="true" description="编号"%> +<%@ attribute name="name" type="java.lang.String" required="true" description="输入框名称"%> +<%@ attribute name="value" type="java.lang.String" required="true" description="输入框值"%> + ${not empty value?value:'无'} +选择 + + \ No newline at end of file diff --git a/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/tags/sys/message.tag b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/tags/sys/message.tag new file mode 100644 index 0000000000000000000000000000000000000000..572a49b83720387d602448009d1a55574240c2e2 --- /dev/null +++ b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/tags/sys/message.tag @@ -0,0 +1,20 @@ +<%@ tag language="java" pageEncoding="UTF-8"%> +<%@ include file="/WEB-INF/views/include/taglib.jsp"%> +<%@ attribute name="hideType" type="java.lang.String" required="false" description="显示类型"%> +<%@ attribute name="content" type="java.lang.String" required="true" description="消息内容"%> +<%@ attribute name="type" type="java.lang.String" description="消息类型:info、success、warning、error、loading"%> + + + + + + + + + + ×${content} + + + + + \ No newline at end of file diff --git a/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/tags/sys/tableSort.tag b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/tags/sys/tableSort.tag new file mode 100644 index 0000000000000000000000000000000000000000..e76e22783866132c436397af19c9f03dc5f76bd9 --- /dev/null +++ b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/tags/sys/tableSort.tag @@ -0,0 +1,33 @@ +<%@ tag language="java" pageEncoding="UTF-8"%> +<%@ include file="/WEB-INF/views/include/taglib.jsp"%> +<%@ attribute name="id" type="java.lang.String" required="true"%> +<%@ attribute name="name" type="java.lang.String" required="true"%> +<%@ attribute name="value" type="java.lang.String" required="true"%> +<%@ attribute name="callback" type="java.lang.String" required="true"%> + +<%-- 使用方法: 1.将本tag写在查询的from里;2.在需要排序th列class上添加:sort-column + 排序字段名;3.后台sql添加排序引用page.orderBy;实例文件:userList.jsp、UserDao.xml --%> + \ No newline at end of file diff --git a/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/tags/sys/treeselect.tag b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/tags/sys/treeselect.tag new file mode 100644 index 0000000000000000000000000000000000000000..876053f81008ed26b0cef4b73b959cce2717b216 --- /dev/null +++ b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/tags/sys/treeselect.tag @@ -0,0 +1,102 @@ +<%@ tag language="java" pageEncoding="UTF-8" %> +<%@ include file="/WEB-INF/views/include/taglib.jsp" %> +<%@ attribute name="id" type="java.lang.String" required="true" description="编号" %> +<%@ attribute name="name" type="java.lang.String" required="true" description="隐藏域名称(ID)" %> +<%@ attribute name="value" type="java.lang.String" required="true" description="隐藏域值(ID)" %> +<%@ attribute name="labelName" type="java.lang.String" required="true" description="输入框名称(Name)" %> +<%@ attribute name="labelValue" type="java.lang.String" required="true" description="输入框值(Name)" %> +<%@ attribute name="title" type="java.lang.String" required="true" description="选择框标题" %> +<%@ attribute name="url" type="java.lang.String" required="true" description="树结构数据地址" %> +<%@ attribute name="checked" type="java.lang.Boolean" required="false" + description="是否显示复选框,如果不需要返回父节点,请设置notAllowSelectParent为true" %> +<%@ attribute name="extId" type="java.lang.String" required="false" description="排除掉的编号(不能选择的编号)" %> +<%@ attribute name="isAll" type="java.lang.Boolean" required="false" + description="是否列出全部数据,设置true则不进行数据权限过滤(目前仅对Office有效)" %> +<%@ attribute name="notAllowSelectRoot" type="java.lang.Boolean" required="false" description="不允许选择根节点" %> +<%@ attribute name="notAllowSelectParent" type="java.lang.Boolean" required="false" description="不允许选择父节点" %> +<%@ attribute name="module" type="java.lang.String" required="false" description="过滤栏目模型(只显示指定模型,仅针对CMS的Category树)" %> +<%@ attribute name="selectScopeModule" type="java.lang.Boolean" required="false" + description="选择范围内的模型(控制不能选择公共模型,不能选择本栏目外的模型)(仅针对CMS的Category树)" %> +<%@ attribute name="allowClear" type="java.lang.Boolean" required="false" description="是否允许清除" %> +<%@ attribute name="allowInput" type="java.lang.Boolean" required="false" description="文本框可填写" %> +<%@ attribute name="cssClass" type="java.lang.String" required="false" description="css样式" %> +<%@ attribute name="cssStyle" type="java.lang.String" required="false" description="css样式" %> +<%@ attribute name="smallBtn" type="java.lang.Boolean" required="false" description="缩小按钮显示" %> +<%@ attribute name="hideBtn" type="java.lang.Boolean" required="false" description="是否显示按钮" %> +<%@ attribute name="disabled" type="java.lang.String" required="false" description="是否限制选择,如果限制,设置为disabled" %> +<%@ attribute name="dataMsgRequired" type="java.lang.String" required="false" description="" %> + + + + + + + + + \ No newline at end of file diff --git a/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/tags/sys/validateCode.tag b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/tags/sys/validateCode.tag new file mode 100644 index 0000000000000000000000000000000000000000..fcd4ad5df9af983fdb1c7eb170ea345f271db6e0 --- /dev/null +++ b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/tags/sys/validateCode.tag @@ -0,0 +1,10 @@ +<%@ tag language="java" pageEncoding="UTF-8"%> +<%@ include file="/WEB-INF/views/include/taglib.jsp"%> +<%@ attribute name="name" type="java.lang.String" required="true" description="验证码输入框名称"%> +<%@ attribute name="inputCssStyle" type="java.lang.String" required="false" description="验证框样式"%> +<%@ attribute name="imageCssStyle" type="java.lang.String" required="false" description="验证码图片样式"%> +<%@ attribute name="buttonCssStyle" type="java.lang.String" required="false" description="看不清按钮样式"%> + + + + \ No newline at end of file diff --git a/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/tags/table/addRow.tag b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/tags/table/addRow.tag new file mode 100644 index 0000000000000000000000000000000000000000..40a706d1de4ea610377684cb6f65221f1144ceb9 --- /dev/null +++ b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/tags/table/addRow.tag @@ -0,0 +1,16 @@ +<%@ tag language="java" pageEncoding="UTF-8"%> +<%@ include file="/WEB-INF/views/include/taglib.jsp"%> +<%@ attribute name="url" type="java.lang.String" required="true"%> +<%@ attribute name="title" type="java.lang.String" required="true"%> +<%@ attribute name="width" type="java.lang.String" required="false"%> +<%@ attribute name="height" type="java.lang.String" required="false"%> +<%@ attribute name="target" type="java.lang.String" required="false"%> +<%@ attribute name="label" type="java.lang.String" required="false"%> + ${label==null?'添加':label} +<%-- 使用方法: 1.将本tag写在查询的form之前;2.传入table的id和controller的url --%> + \ No newline at end of file diff --git a/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/tags/table/delRow.tag b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/tags/table/delRow.tag new file mode 100644 index 0000000000000000000000000000000000000000..295b2564b78f76d7cd1ee5885d2f837cfe6c80eb --- /dev/null +++ b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/tags/table/delRow.tag @@ -0,0 +1,45 @@ +<%@ tag language="java" pageEncoding="UTF-8"%> +<%@ include file="/WEB-INF/views/include/taglib.jsp"%> +<%@ attribute name="id" type="java.lang.String" required="true"%> +<%@ attribute name="url" type="java.lang.String" required="true"%> +<%@ attribute name="label" type="java.lang.String" required="false"%> + ${label==null?'删除':label} + +<%-- 使用方法: 1.将本tag写在查询的form之前;2.传入table的id和controller的url --%> + \ No newline at end of file diff --git a/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/tags/table/editRow.tag b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/tags/table/editRow.tag new file mode 100644 index 0000000000000000000000000000000000000000..ee6ea16553b7a03e73a5d80aa3bb49443d1b164e --- /dev/null +++ b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/tags/table/editRow.tag @@ -0,0 +1,44 @@ +<%@ tag language="java" pageEncoding="UTF-8"%> +<%@ include file="/WEB-INF/views/include/taglib.jsp"%> +<%@ attribute name="id" type="java.lang.String" required="true"%> +<%@ attribute name="url" type="java.lang.String" required="true"%> +<%@ attribute name="title" type="java.lang.String" required="true"%> +<%@ attribute name="width" type="java.lang.String" required="false"%> +<%@ attribute name="height" type="java.lang.String" required="false"%> +<%@ attribute name="target" type="java.lang.String" required="false"%> +<%@ attribute name="label" type="java.lang.String" required="false"%> + ${label==null?'修改':label} + +<%-- 使用方法: 1.将本tag写在查询的form之前;2.传入table的id和controller的url --%> + \ No newline at end of file diff --git a/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/tags/table/exportExcel.tag b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/tags/table/exportExcel.tag new file mode 100644 index 0000000000000000000000000000000000000000..aaebfb69694275bd9286f8afc9d853f1c4d07fb0 --- /dev/null +++ b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/tags/table/exportExcel.tag @@ -0,0 +1,33 @@ +<%@ tag language="java" pageEncoding="UTF-8"%> +<%@ include file="/WEB-INF/views/include/taglib.jsp"%> +<%@ attribute name="url" type="java.lang.String" required="true"%> +<%-- 使用方法: 1.将本tag写在查询的form之前;2.传入url --%> + 导出 + \ No newline at end of file diff --git a/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/tags/table/importExcel.tag b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/tags/table/importExcel.tag new file mode 100644 index 0000000000000000000000000000000000000000..6a953fbda7650982e24b049c53e4d54601d11382 --- /dev/null +++ b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/tags/table/importExcel.tag @@ -0,0 +1,38 @@ +<%@ tag language="java" pageEncoding="UTF-8"%> +<%@ include file="/WEB-INF/views/include/taglib.jsp"%> +<%@ attribute name="url" type="java.lang.String" required="true"%> +<%-- 使用方法: 1.将本tag写在查询的form之前;2.传入controller的url --%> + 导入 + + + 导入文件不能超过5M,仅允许导入“xls”或“xlsx”格式文件! + + + \ No newline at end of file diff --git a/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/tags/table/page.tag b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/tags/table/page.tag new file mode 100644 index 0000000000000000000000000000000000000000..b2c6065c3d53823a1f6a0cd398cdf297ae64857b --- /dev/null +++ b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/tags/table/page.tag @@ -0,0 +1,5 @@ +<%@ tag language="java" pageEncoding="UTF-8"%> +<%@ include file="/WEB-INF/views/include/taglib.jsp"%> +<%@ attribute name="page" type="com.jeespring.common.persistence.Page" required="true"%> +<%-- 表格分页工具栏,使用方法: 原样输出page --%> +${page.toStringPage()} \ No newline at end of file diff --git a/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/tags/table/sortColumn.tag b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/tags/table/sortColumn.tag new file mode 100644 index 0000000000000000000000000000000000000000..8bbc702f4a048adff0fcc9cecc8a11b5a0c43f76 --- /dev/null +++ b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/tags/table/sortColumn.tag @@ -0,0 +1,37 @@ +<%@ tag language="java" pageEncoding="UTF-8"%> +<%@ include file="/WEB-INF/views/include/taglib.jsp"%> +<%@ attribute name="id" type="java.lang.String" required="true"%> +<%@ attribute name="name" type="java.lang.String" required="true"%> +<%@ attribute name="value" type="java.lang.String" required="true"%> +<%@ attribute name="callback" type="java.lang.String" required="true"%> + +<%-- 使用方法: 1.将本tag写在查询的from里;2.在需要排序th列class上添加:sort-column + 排序字段名;3.后台sql添加排序引用page.orderBy;实例文件:userList.jsp、UserDao.xml --%> + \ No newline at end of file diff --git a/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/tlds/echarts.tld b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/tlds/echarts.tld new file mode 100644 index 0000000000000000000000000000000000000000..d726da6157a482bb49644e16daef800b3c62f255 --- /dev/null +++ b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/tlds/echarts.tld @@ -0,0 +1,308 @@ + + + ECharts图表 + 1.1 + echarts + /echarts + + line + com.jeespring.common.tag.echarts.EChartsLineTag + scriptless + + id + 与div里面的id相同 + true + true + + + title + 图表的标题 + true + true + + + subtitle + 图表的副标题 + false + true + + + xAxisName + X轴的名称 + false + true + + + yAxisName + Y轴的名称 + false + true + + + xAxisData + X轴的数据 + true + true + java.lang.Object + + + yAxisData + Y轴的数据 + true + true + java.lang.Object + + + yAxisIndex + 图表中的数据对应的Y轴 + false + true + java.lang.Object + + + + lineDoubleNum + com.jeespring.common.tag.echarts.EChartsLineDoubleNumTag + scriptless + + id + 与div里面的id相同 + true + true + + + title + 图表的标题 + true + true + + + subtitle + 图表的副标题 + false + true + + + xAxisName + X轴的名称 + false + true + + + yAxisName + Y轴的名称 + false + true + + + axisDataArr + Y轴的数据 + true + true + java.lang.Object + + + yAxisIndex + 图表中的数据对应的Y轴 + false + true + java.lang.Object + + + + lineTimeLine + com.jeespring.common.tag.echarts.EChartsLineTimeLineTag + scriptless + + id + 与div里面的id相同 + true + true + + + title + 图表的标题 + true + true + + + subtitle + 图表的副标题 + false + true + + + xAxisName + X轴的名称 + false + true + + + yAxisName + Y轴的名称 + false + true + + + xAxisData + X轴的数据 + true + true + java.lang.Object + + + yAxisData + Y轴的数据 + true + true + java.lang.Object + + + yAxisIndex + 图表中的数据对应的Y轴 + false + true + java.lang.Object + + + timelineData + 时间轴的名称 + true + true + java.lang.Object + + + timelineAxisData + 时间轴的数据 + true + true + java.lang.Object + + + + + bar + com.jeespring.common.tag.echarts.EChartsBarTag + scriptless + + id + 与div里面的id相同 + true + true + + + title + 图表的标题 + true + true + + + subtitle + 图表的副标题 + false + true + + + xAxisName + X轴的名称 + false + true + + + yAxisName + Y轴的名称 + false + true + + + xAxisData + X轴的数据 + true + true + java.lang.Object + + + yAxisData + Y轴的数据 + true + true + java.lang.Object + + + yAxisIndex + 图表中的数据对应的Y轴 + false + true + java.lang.Object + + + + pie + com.jeespring.common.tag.echarts.EChartsPieTag + scriptless + + id + 与div里面的id相同 + true + true + + + title + 图表的标题 + true + true + + + subtitle + 图表的副标题 + false + true + + + orientData + 图表的数据 + true + true + java.lang.Object + + + + radar + com.jeespring.common.tag.echarts.EChartsRadarTag + scriptless + + id + 与div里面的id相同 + true + true + + + title + 图表的标题 + true + true + + + subtitle + 图表的副标题 + false + true + + + polarType + 玫瑰图方位:8、16 + true + true + + + orientData + 图表的数据 + true + true + java.lang.Object + + + diff --git a/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/tlds/fnc.tld b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/tlds/fnc.tld new file mode 100644 index 0000000000000000000000000000000000000000..ff925240ff8eca37750a02195da23fe1f6031962 --- /dev/null +++ b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/tlds/fnc.tld @@ -0,0 +1,102 @@ + + + + + JSTL 1.1 functions library + JSTL functions cms + 1.1 + fnc + http://java.sun.com/jsp/jstl/functionsc + + + 获取当前管理站点编号 + getCurrentSiteId + com.jeespring.modules.cms.entity.Site + java.lang.String getCurrentSiteId() + ${fnc:getCurrentSiteId()} + + + + 获取站点 + getSite + com.jeespring.modules.cms.utils.CmsUtils + com.jeespring.modules.cms.entity.Site getSite(java.lang.String) + ${fnc:getSite(siteId)} + + + + 获取站点列表 + getSiteList + com.jeespring.modules.cms.utils.CmsUtils + java.util.List getSiteList() + ${fnc:getSiteList()} + + + + 获取主导航列表 + getMainNavList + com.jeespring.modules.cms.utils.CmsUtils + java.util.List getMainNavList(java.lang.String) + ${fnc:getMainNavList(siteId)} + + + + 获取栏目 + getCategory + com.jeespring.modules.cms.utils.CmsUtils + com.jeespring.modules.cms.entity.Category getCategory(java.lang.String) + ${fnc:getCategory(categoryId)} + + + + 获得栏目列表 + getCategoryList + com.jeespring.modules.cms.utils.CmsUtils + java.util.List getCategoryList(java.lang.String, java.lang.String, int, java.lang.String) + ${fnc:getCategoryList(siteId, parentId, number, param)} + + + + 获得栏目列表 + getCategoryListByIds + com.jeespring.modules.cms.utils.CmsUtils + java.util.List getCategoryListByIds(java.lang.String) + ${fnc:getCategoryListByIds(categoryIds)} + + + + 获取文章 + getArticle + com.jeespring.modules.cms.utils.CmsUtils + com.jeespring.modules.cms.entity.Article getArticle(java.lang.String) + ${fnc:getArticle(articleId)} + + + + 获取文章列表 + getArticleList + com.jeespring.modules.cms.utils.CmsUtils + java.util.List getArticleList(java.lang.String, java.lang.String, int, java.lang.String) + ${fnc:getArticleList(siteId, categoryId, number, param)} + + + + 获取链接 + getLink + com.jeespring.modules.cms.utils.CmsUtils + com.jeespring.modules.cms.entity.Link getLink(java.lang.String) + ${fnc:getLink(linkId)} + + + + 获取链接列表 + getLinkList + com.jeespring.modules.cms.utils.CmsUtils + java.util.List getLinkList(java.lang.String, java.lang.String, int, java.lang.String) + ${fnc:getLinkList(siteId, categoryId, number, param)} + + + diff --git a/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/tlds/fns.tld b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/tlds/fns.tld new file mode 100644 index 0000000000000000000000000000000000000000..16e495b18215cf815bf35352ea577b634644851c --- /dev/null +++ b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/tlds/fns.tld @@ -0,0 +1,283 @@ + + + + + JSTL 1.1 functions library + JSTL functions sys + 1.1 + fns + http://java.sun.com/jsp/jstl/functionss + + + 获取管理路径 + getAdminPath + com.jeespring.common.config.Global + java.lang.String getAdminPath() + ${fns:getAdminPath()} + + + 获取网站路径 + getFrontPath + com.jeespring.common.config.Global + java.lang.String getFrontPath() + ${fns:getFrontPath()} + + + 获取网站URL后缀 + getUrlSuffix + com.jeespring.common.config.Global + java.lang.String getUrlSuffix() + ${fns:getUrlSuffix()} + + + 获取配置 + getConfig + com.jeespring.common.config.Global + java.lang.String getConfig(java.lang.String) + ${fns:getConfig(key)} + + + 获取常量 + getConst + com.jeespring.common.config.Global + java.lang.Object getConst(java.lang.String) + ${fns:getConst(key)} + + + + + 获取当前用户对象 + getUser + com.jeespring.modules.sys.utils.UserUtils + com.jeespring.modules.sys.entity.User getUser() + ${fns:getUser()} + + + + 根据编码获取用户对象 + getUserById + com.jeespring.modules.sys.utils.UserUtils + com.jeespring.modules.sys.entity.User get(java.lang.String) + ${fns:getUserById(id)} + + + + 获取授权用户信息 + getPrincipal + com.jeespring.modules.sys.utils.UserUtils + com.jeespring.modules.sys.security.SystemAuthorizingRealm.Principal getPrincipal() + ${fns:getPrincipal()} + + + + 获取当前用户的菜单对象列表 + getMenuList + com.jeespring.modules.sys.utils.UserUtils + java.util.List getMenuList() + ${fns:getMenuList()} + + + + 获取当前用户的菜单对象列表 + getTopMenu + com.jeespring.modules.sys.utils.UserUtils + com.jeespring.modules.sys.entity.Menu getTopMenu() + ${fns:getTopMenu()} + + + 获取当前时间与指定时间的差值 + getTime + com.jeespring.modules.sys.utils.UserUtils + java.util.Date getTime(java.util.Date) + ${fns:getTime(java.util.Date)} + + + 获取当前用户的区域对象列表 + getAreaList + com.jeespring.modules.sys.utils.UserUtils + java.util.List getAreaList() + ${fns:getAreaList()} + + + + 获取当前用户的部门对象列表 + getOfficeList + com.jeespring.modules.sys.utils.UserUtils + java.util.List getOfficeList() + ${fns:getOfficeList()} + + + + 获取当前用户缓存 + getCache + com.jeespring.modules.sys.utils.UserUtils + java.lang.Object getCache(java.lang.String, java.lang.Object) + ${fns:getCache(cacheName, defaultValue)} + + + + + 获取字典标签 + getDictLabel + com.jeespring.modules.sys.utils.DictUtils + java.lang.String getDictLabel(java.lang.String, java.lang.String, java.lang.String) + ${fns:getDictLabel(value, type, defaultValue)} + + + + 获取字典标签(多个) + getDictLabels + com.jeespring.modules.sys.utils.DictUtils + java.lang.String getDictLabels(java.lang.String, java.lang.String, java.lang.String) + ${fns:getDictLabels(values, type, defaultValue)} + + + + 获取字典值 + getDictValue + com.jeespring.modules.sys.utils.DictUtils + java.lang.String getDictValue(java.lang.String, java.lang.String, java.lang.String) + ${fns:getDictValue(label, type, defaultValue)} + + + + 获取字典对象列表 + getDictList + com.jeespring.modules.sys.utils.DictUtils + java.util.List getDictList(java.lang.String) + ${fns:getDictList(type)} + + + + 获取字典对象列表,并增加全部项 + getDictListAddAll + com.jeespring.modules.sys.utils.DictUtils + java.util.List getDictListAddAll(java.lang.String) + ${fns:getDictListAddAll(type)} + + + + 获取字典对象列表 + getDictListJson + com.jeespring.modules.sys.utils.DictUtils + java.lang.String getDictListJson(java.lang.String) + ${fns:getDictListJson(type)} + + + + + URL编码 + urlEncode + com.jeespring.common.utils.Encodes + java.lang.String urlEncode(java.lang.String) + ${fns:urlEncode(part)} + + + URL解码 + urlDecode + com.jeespring.common.utils.Encodes + java.lang.String urlDecode(java.lang.String) + ${fns:urlDecode(part)} + + + HTML编码 + escapeHtml + com.jeespring.common.utils.Encodes + java.lang.String escapeHtml(java.lang.String) + ${fns:escapeHtml(html)} + + + HTML解码 + unescapeHtml + com.jeespring.common.utils.Encodes + java.lang.String unescapeHtml(java.lang.String) + ${fns:unescapeHtml(html)} + + + + + 从后边开始截取字符串 + substringAfterLast + org.apache.commons.lang3.StringUtils + java.lang.String substringAfterLast(java.lang.String, java.lang.String) + ${fns:substringAfterLast(str,separator)} + + + 判断字符串是否以某某开头 + startsWith + org.apache.commons.lang3.StringUtils + boolean startsWith(java.lang.CharSequence, java.lang.CharSequence) + ${fns:startsWith(str,prefix)} + + + 判断字符串是否以某某结尾 + endsWith + org.apache.commons.lang3.StringUtils + boolean endsWith(java.lang.CharSequence, java.lang.CharSequence) + ${fns:endsWith(str,suffix)} + + + 缩写字符串,超过最大宽度用“...”表示 + abbr + com.jeespring.common.utils.StringUtils + java.lang.String abbr(java.lang.String, int) + ${fns:abbr(str,length)} + + + 替换掉HTML标签 + replaceHtml + com.jeespring.common.utils.StringUtils + java.lang.String replaceHtml(java.lang.String) + ${fns:replaceHtml(html)} + + + 转换为JS获取对象值,生成三目运算返回结果。 + jsGetVal + com.jeespring.common.utils.StringUtils + java.lang.String jsGetVal(java.lang.String) + ${fns:jsGetVal('row.user.id')} 返回:!row?'':!row.user?'':!row.user.id?'':row.user.id + + + + + 获取当前日期 + getDate + com.jeespring.common.utils.DateUtils + java.lang.String getDate(java.lang.String) + ${fns:getDate(pattern)} + + + 获取过去的天数 + pastDays + com.jeespring.common.utils.DateUtils + long pastDays(java.util.Date) + ${fns:pastDays(date)} + + + 将日期对象Date转为标准格式字符串yyyy-mm-dd hh:mm:ss显示 + formatDateTime + com.jeespring.common.utils.DateUtils + java.lang.String formatDateTime(java.util.Date) + ${fns:formatDateTime(date)} + + + + 对象转换JSON字符串 + toJson + com.jeespring.common.mapper.JsonMapper + java.lang.String toJsonString(java.lang.Object) + ${fns:toJson(object)} + + + + 根据编码获取用户对象 + getByLoginName + com.jeespring.modules.sys.utils.UserUtils + com.jeespring.modules.sys.entity.User getByLoginName(java.lang.String) + ${fns:getByLoginName(loginName)} + + + diff --git a/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/tlds/menu.tld b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/tlds/menu.tld new file mode 100644 index 0000000000000000000000000000000000000000..74d6ebbe57188fc6dc99f4c207cf34d075d6fd46 --- /dev/null +++ b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/tlds/menu.tld @@ -0,0 +1,27 @@ + + + + 1.0 + 1.2 + t + /menu-tags + "自定义标签" + + + + menu + com.jeespring.common.tag.MenuTag + JSP + 左侧菜单生成控件 + 111 + 左侧菜单生成控件可选样式easyui,bootstrap,json + + menu + false + true + 菜单信息 + + + + \ No newline at end of file diff --git a/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/tlds/shiros.tld b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/tlds/shiros.tld new file mode 100644 index 0000000000000000000000000000000000000000..0b0efba1d1615d01c6ab5a765ade51206e8640c9 --- /dev/null +++ b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/tlds/shiros.tld @@ -0,0 +1,176 @@ + + + + + + + 1.1.2 + 1.2 + Apache Shiro + http://shiro.apache.org/tagss + Apache Shiro JSP Tag Library extends the hasAnyPermissions tag. + + + hasPermission + org.apache.shiro.web.tags.HasPermissionTag + JSP + Displays body content only if the current Subject (user) + 'has' (implies) the specified permission (i.e the user has the specified ability). + + + name + true + true + + + + + hasAnyPermissions + com.jeespring.common.security.shiro.HasAnyPermissionsTag + JSP + Displays body content only if the current user has one of the specified permissions from a + comma-separated list of permission names. + + + name + true + true + + + + + lacksPermission + org.apache.shiro.web.tags.LacksPermissionTag + JSP + Displays body content only if the current Subject (user) does + NOT have (not imply) the specified permission (i.e. the user lacks the specified ability) + + + name + true + true + + + + + hasRole + org.apache.shiro.web.tags.HasRoleTag + JSP + Displays body content only if the current user has the specified role. + + name + true + true + + + + + + hasAnyRoles + org.apache.shiro.web.tags.HasAnyRolesTag + JSP + Displays body content only if the current user has one of the specified roles from a + comma-separated list of role names. + + + name + true + true + + + + + lacksRole + org.apache.shiro.web.tags.LacksRoleTag + JSP + Displays body content only if the current user does NOT have the specified role + (i.e. they explicitly lack the specified role) + + + name + true + true + + + + + authenticated + org.apache.shiro.web.tags.AuthenticatedTag + JSP + Displays body content only if the current user has successfully authenticated + _during their current session_. It is more restrictive than the 'user' tag. + It is logically opposite to the 'notAuthenticated' tag. + + + + + notAuthenticated + org.apache.shiro.web.tags.NotAuthenticatedTag + JSP + Displays body content only if the current user has NOT succesfully authenticated + _during their current session_. It is logically opposite to the 'authenticated' tag. + + + + + user + org.apache.shiro.web.tags.UserTag + JSP + Displays body content only if the current Subject has a known identity, either + from a previous login or from 'RememberMe' services. Note that this is semantically different + from the 'authenticated' tag, which is more restrictive. It is logically + opposite to the 'guest' tag. + + + + + guest + org.apache.shiro.web.tags.GuestTag + JSP + Displays body content only if the current Subject IS NOT known to the system, either + because they have not logged in or they have no corresponding 'RememberMe' identity. It is logically + opposite to the 'user' tag. + + + + + principal + org.apache.shiro.web.tags.PrincipalTag + JSP + Displays the user's principal or a property of the user's principal. + + type + false + true + + + property + false + true + + + defaultValue + false + true + + + + diff --git a/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/base/home.jsp b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/base/home.jsp new file mode 100644 index 0000000000000000000000000000000000000000..f8f0fcb58686bdb9df49a5af5a2f2b8e2cbdacdc --- /dev/null +++ b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/base/home.jsp @@ -0,0 +1,198 @@ +<%@ page contentType="text/html;charset=UTF-8" %> +<%@ include file="/WEB-INF/views/include/taglib.jsp"%> +<%@ page isELIgnored="false" %> + + + 首页 + + + + + + + + + + + + + + + + + + + + + ${indexSysConfig.description} + + + ${homePageInfomation} + + + + + + + + 平台视频介绍 + ${oaNotify.title} + + + JeeSpringCloud介绍.docx + JeeSpringCloud介绍功能初级.docx + JeeSpringCloud中级培训文档.docx + + + + + + + + 平台视频部署 + ${oaNotify.title} + + + JeeSpringCloud部署初级.docx + JeeSpringCloud部署高级.docx + + JeeSpring部署初级.mp4 + JeeSpring部署高级.mp4 + + + + + + + 平台视频教程 + ${oaNotify.title} + + + + + + + + + + + + + + + 公告通知 + ${oaNotify.title} + + + + + + ${fns:abbr(oaNotify.title,50)} ${fns:getDictLabel(oaNotify.type, 'oa_notify_type', '')} + + + + + + + + + + + + 升级日志 K+ + + + + + + + + + + + + + + + ${fns:abbr(oaNotify.title,50)} ${fns:getDictLabel(oaNotify.type, 'oa_notify_type', '')} + + + + + ${indexTopicsShowList.description} + + + + + + + + + + + + 技术支持 + + + + + ${fns:abbr(oaNotify.title,50)} ${fns:getDictLabel(oaNotify.type, 'oa_notify_type', '')} + + + + + + + + + + + + + + + JeeSpring 技术特点 + + + + ${homePageTechnical} + + + + + + + + + 开源授权 + + + + ${homePageAuthorization} + + + + + + + + + 联系信息 + + + ${homePageContactInfo} + + + + + + + \ No newline at end of file diff --git a/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/base/index.jsp b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/base/index.jsp new file mode 100644 index 0000000000000000000000000000000000000000..31614783bc02c9054677e733825c032b61d422a7 --- /dev/null +++ b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/base/index.jsp @@ -0,0 +1,619 @@ +<%@ page contentType="text/html;charset=UTF-8" %> +<%@ include file="/WEB-INF/views/include/taglib.jsp" %> + + + + + + + ${fns:getConfig('productName')}-${systemMode}-${version} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ${fns:getConfig('productName')} + + ${fns:getConfig('productName')} + + + + + + + Toggle navigation + ${systemMode}-${version} + + + + + + + + 网站首页 + + + + + + + 4 + + + 你有 4 条消息 + + + + + + + + + + 支持团队 + 5 分钟前 + + 为什么不购买一个高级模板主题? + + + + + + + + + + AdminLTE 设计团队 + 2 小时前 + + 为什么不购买一个高级模板主题? + + + + + + + + + Developers + 今天 + + 为什么不购买一个高级模板主题? + + + + + + + + + 销售部门 + 昨天 + + 为什么不购买一个高级模板主题? + + + + + + + + + 评估人员 + 2 天前 + + 为什么不购买一个高级模板主题? + + + + + 查看所有消息 + + + + + + + 10 + + + 你有 10 条通知 + + + + + + 今日 5 名新进会员加入 + + + + + 很长描述可能不适用于页面,可能会导致设计问题 + ,可能会导致设计问题 + + + + + 5 名新成员加入 + + + + + 25 条销售记录 + + + + + 你修改了用户名 + + + + + 查看所有 + + + + + + + 9 + + + 你有 9 项任务 + + + + + + + 设计一些按钮 + 20% + + + + 20% 完成 + + + + + + + + + 创建一个漂亮的主题 + 40% + + + + 40% 完成 + + + + + + + + + 我需要做的一些任务 + 60% + + + + 60% 完成 + + + + + + + + + 制作漂亮的过度效果 + 80% + + + + 80% 完成 + + + + + + + + + 查看所有任务 + + + + + + + + ${fns:getUser().name} + + + + + + + + ${fns:getUser().name} - ${fns:getUser().roleNames} + Member since Nov. 2012 + + + + + + + Followers + + + Sales + + + Friends + + + + + + + + + 个人中心 + + + + 退出登录 + + + + 修改头像 + + + + 修改密码 + + + 清除缓存 + 清除单点登录缓存 + 在线人数 + 访问次数 + 调用次数 + 缓存有效时间 + 单点登录缓存有效时间 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 页签操作 + + + 刷新当前 + 关闭当前 + 全部关闭 + 除此之外全部关闭 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +<%@ include file="/WEB-INF/views/include/im.jsp"%> + + diff --git a/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/base/login.jsp b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/base/login.jsp new file mode 100644 index 0000000000000000000000000000000000000000..f8de29e0a50264b3a9ac6622908ef1a37d503885 --- /dev/null +++ b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/base/login.jsp @@ -0,0 +1,102 @@ +<%@ page contentType="text/html;charset=UTF-8" %> +<%@ page import="org.apache.shiro.web.filter.authc.FormAuthenticationFilter" %> +<%@ include file="/WEB-INF/views/include/taglib.jsp" %> + + + + + + ${fns:getConfig('productName')} 登录 + + + + + + + + + + + + + + + + + + + + + + + 介绍 + 在线文档 + 帮助 + + + + + ${fns:getConfig('productName')}-${systemMode}-${version} + + + + + + + + + + + + + + + + + + 记住我 + + + 注册 + + + © 2018 All Rights Reserved. JeeSpring + + + + + + + + + + + + 搜索 + + + + + + + + + + \ No newline at end of file diff --git a/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/base/register.jsp b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/base/register.jsp new file mode 100644 index 0000000000000000000000000000000000000000..cf6d0e45b245ec99a18819548902a2b22c342917 --- /dev/null +++ b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/base/register.jsp @@ -0,0 +1,110 @@ +<%@ page contentType="text/html;charset=UTF-8" %> +<%@ page import="org.apache.shiro.web.filter.authc.FormAuthenticationFilter"%> +<%@ include file="/WEB-INF/views/include/taglib.jsp"%> + + + + ${fns:getConfig('productName')} 注册 + + + + + + + + + + + + + + + + + + + + + + + + + ${fns:getConfig('productName')} + 用户注册 + + + + + + + + + + + + + + + + + + + + + + + + + 我接受《用户注册协议》 + 必须接受用户协议 + + + 返回 + + + © 2018 All Rights Reserved. JeeSpring + + + + + + \ No newline at end of file diff --git a/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/error/400.jsp b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/error/400.jsp new file mode 100644 index 0000000000000000000000000000000000000000..1ee82a969677e98c721853b3e506946f6977bbf6 --- /dev/null +++ b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/error/400.jsp @@ -0,0 +1,67 @@ +<%response.setStatus(400); + +// 获取异常类 +Throwable ex = Exceptions.getThrowable(request); + +// 编译错误信息 +StringBuilder sb = new StringBuilder("错误信息:\n"); +if (ex != null) { + if (ex instanceof BindException) { + for (ObjectError e : ((BindException)ex).getGlobalErrors()){ + sb.append("☆" + e.getDefaultMessage() + "(" + e.getObjectName() + ")\n"); + } + for (FieldError e : ((BindException)ex).getFieldErrors()){ + sb.append("☆" + e.getDefaultMessage() + "(" + e.getField() + ")\n"); + } + LoggerFactory.getLogger("400.jsp").warn(ex.getMessage(), ex); + }else if (ex instanceof ConstraintViolationException) { + for (ConstraintViolation> v : ((ConstraintViolationException)ex).getConstraintViolations()) { + sb.append("☆" + v.getMessage() + "(" + v.getPropertyPath() + ")\n"); + } + } else { + //sb.append(Exceptions.getStackTraceAsString(ex)); + sb.append("☆" + ex.getMessage()); + } +} else { + sb.append("未知错误.\n\n"); +} + +// 如果是异步请求或是手机端,则直接返回信息 +if (Servlets.isAjaxRequest(request)) { + out.print(sb); +} + +// 输出异常信息页面 +else {%> +<%@page import="javax.validation.ConstraintViolation"%> +<%@page import="javax.validation.ConstraintViolationException"%> +<%@page import="org.springframework.validation.BindException"%> +<%@page import="org.springframework.validation.ObjectError"%> +<%@page import="org.springframework.validation.FieldError"%> +<%@page import="org.slf4j.Logger,org.slf4j.LoggerFactory"%> +<%@page import="com.jeespring.common.web.Servlets"%> +<%@page import="com.jeespring.common.utils.Exceptions"%> +<%@page import="com.jeespring.common.utils.StringUtils"%> +<%@page contentType="text/html;charset=UTF-8" isErrorPage="true"%> +<%@include file="/WEB-INF/views/include/taglib.jsp"%> + + + + 400 - 请求出错 + <%@include file="/WEB-INF/views/include/head.jsp" %> + + + + 参数有误,服务器无法解析. + + <%=StringUtils.toHtml(sb.toString())%> + + 返回上一页 + + + + + +<% +} out = pageContext.pushBody(); +%> \ No newline at end of file diff --git a/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/error/403.jsp b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/error/403.jsp new file mode 100644 index 0000000000000000000000000000000000000000..2b35b0228d8a72f2f91b203a824d414fb21a1432 --- /dev/null +++ b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/error/403.jsp @@ -0,0 +1,43 @@ +<%response.setStatus(403); + +//获取异常类 +Throwable ex = Exceptions.getThrowable(request); + +// 如果是异步请求或是手机端,则直接返回信息 +if (Servlets.isAjaxRequest(request)) { + if (ex!=null && StringUtils.startsWith(ex.getMessage(), "msg:")){ + out.print(StringUtils.replace(ex.getMessage(), "msg:", "")); + }else{ + out.print("操作权限不足."); + } +} + +//输出异常信息页面 +else {%> +<%@page import="com.jeespring.common.web.Servlets"%> +<%@page import="com.jeespring.common.utils.Exceptions"%> +<%@page import="com.jeespring.common.utils.StringUtils"%> +<%@page contentType="text/html;charset=UTF-8" isErrorPage="true"%> +<%@include file="/WEB-INF/views/include/taglib.jsp"%> + + + + 403 - 操作权限不足 + <%@include file="/WEB-INF/views/include/head.jsp" %> + + + + 操作权限不足. + <% + if (ex!=null && StringUtils.startsWith(ex.getMessage(), "msg:")){ + out.print(""+StringUtils.replace(ex.getMessage(), "msg:", "")+" "); + } + %> + 返回上一页 + + + + +<% +} out = pageContext.pushBody(); +%> \ No newline at end of file diff --git a/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/error/404.jsp b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/error/404.jsp new file mode 100644 index 0000000000000000000000000000000000000000..9e61049304dd5343084eeb19ca66f1e3ac395a4c --- /dev/null +++ b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/error/404.jsp @@ -0,0 +1,39 @@ +<%@ page contentType="text/html;charset=UTF-8" %> +<%@ include file="/WEB-INF/views/include/taglib.jsp"%> +<%@page import="com.jeespring.common.web.Servlets"%> +<% + response.setStatus(404); + +// 如果是异步请求或是手机端,则直接返回信息 +if (Servlets.isAjaxRequest(request)) { + out.print("页面不存在."); +} + +//输出异常信息页面 +else { +%> + + + + + 404 页面 + + + + + + + + 404 + 页面未找到! + + + 抱歉,页面好像去火星了~ + + + + + + + +<%}%> \ No newline at end of file diff --git a/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/error/500.jsp b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/error/500.jsp new file mode 100644 index 0000000000000000000000000000000000000000..be5e1b7d80ead20bb7db8b18c3e97e4fa4dbd282 --- /dev/null +++ b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/error/500.jsp @@ -0,0 +1,57 @@ +<%response.setStatus(500); + +// 获取异常类 +Throwable ex = Exceptions.getThrowable(request); +if (ex != null){ + LoggerFactory.getLogger("500.jsp").error(ex.getMessage(), ex); +} + +// 编译错误信息 +StringBuilder sb = new StringBuilder("错误信息:\n"); +if (ex != null) { + sb.append(Exceptions.getStackTraceAsString(ex)); +} else { + sb.append("未知错误.\n\n"); +} + +// 如果是异步请求或是手机端,则直接返回信息 +if (Servlets.isAjaxRequest(request)) { + out.print(sb); +} + +// 输出异常信息页面 +else {%> +<%@page import="org.slf4j.Logger,org.slf4j.LoggerFactory"%> +<%@page import="com.jeespring.common.web.Servlets"%> +<%@page import="com.jeespring.common.utils.Exceptions"%> +<%@page import="com.jeespring.common.utils.StringUtils"%> +<%@page contentType="text/html;charset=UTF-8" isErrorPage="true"%> +<%@include file="/WEB-INF/views/include/taglib.jsp"%> + + + + 500 - 系统内部错误 + <%@include file="/WEB-INF/views/include/head.jsp" %> + + + + 系统内部错误. + + 错误信息:<%=ex==null?"未知错误.":StringUtils.toHtml(ex.getMessage())%> + 请点击“查看详细信息”按钮,将详细错误信息发送给系统管理员,谢谢! + 返回上一页 + 查看详细信息 + + + <%=StringUtils.toHtml(sb.toString())%> + 返回上一页 + 隐藏详细信息 + + + + + + +<% +} out = pageContext.pushBody(); +%> \ No newline at end of file diff --git a/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/error/error_fileupload.jsp b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/error/error_fileupload.jsp new file mode 100644 index 0000000000000000000000000000000000000000..a2f69239345b8aa6a8f085fbb7d535221f23e71a --- /dev/null +++ b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/error/error_fileupload.jsp @@ -0,0 +1,2 @@ +<%@ page language="java" pageEncoding="UTF-8"%> +文件过大,请重新选择 \ No newline at end of file diff --git a/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/include/btnGroup.jsp b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/include/btnGroup.jsp new file mode 100644 index 0000000000000000000000000000000000000000..8a3b782cff01e75f252dc89161207bccf963beca --- /dev/null +++ b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/include/btnGroup.jsp @@ -0,0 +1,11 @@ +<%@ page contentType="text/html;charset=UTF-8" %> + + + + + + + 放大 + 缩小 + + \ No newline at end of file diff --git a/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/include/dialog.jsp b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/include/dialog.jsp new file mode 100644 index 0000000000000000000000000000000000000000..a751cc1325af86f9049a22147804af9f5b272836 --- /dev/null +++ b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/include/dialog.jsp @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/include/echarts.jsp b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/include/echarts.jsp new file mode 100644 index 0000000000000000000000000000000000000000..a8f3335d57b035a000bf05b96c1b434903bbfb2e --- /dev/null +++ b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/include/echarts.jsp @@ -0,0 +1,26 @@ +<%@ page contentType="text/html;charset=UTF-8" %> + + + \ No newline at end of file diff --git a/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/include/footJs.jsp b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/include/footJs.jsp new file mode 100644 index 0000000000000000000000000000000000000000..4c9603e73ce661c2bd2019bc0c1dd858849619b4 --- /dev/null +++ b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/include/footJs.jsp @@ -0,0 +1,8 @@ +<%@ page contentType="text/html;charset=UTF-8" %> + + + + + + + diff --git a/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/include/head.jsp b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/include/head.jsp new file mode 100644 index 0000000000000000000000000000000000000000..0f84bd23c626ed0697ecee0ed9d4a605f43bcbc5 --- /dev/null +++ b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/include/head.jsp @@ -0,0 +1,68 @@ +<%@ page contentType="text/html;charset=UTF-8" %> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/include/headCss.jsp b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/include/headCss.jsp new file mode 100644 index 0000000000000000000000000000000000000000..8093383572a200ed56c2fc95255b6966a47f04f0 --- /dev/null +++ b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/include/headCss.jsp @@ -0,0 +1,30 @@ +<%@ page contentType="text/html;charset=UTF-8" %> + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/include/headJs.jsp b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/include/headJs.jsp new file mode 100644 index 0000000000000000000000000000000000000000..5b821c2a11295a8a11869851713911e4094b8617 --- /dev/null +++ b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/include/headJs.jsp @@ -0,0 +1,46 @@ +<%@ page contentType="text/html;charset=UTF-8" %> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/include/headMeta.jsp b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/include/headMeta.jsp new file mode 100644 index 0000000000000000000000000000000000000000..a25ab472dddb44c45f3c67781a58e3630e5f47cd --- /dev/null +++ b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/include/headMeta.jsp @@ -0,0 +1,15 @@ +<%@ page contentType="text/html;charset=UTF-8" %> + + + + + + + + + + + + + + diff --git a/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/include/im.jsp b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/include/im.jsp new file mode 100644 index 0000000000000000000000000000000000000000..237d0b18c1991ef4508a2b2dfed8764353399cb5 --- /dev/null +++ b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/include/im.jsp @@ -0,0 +1,15 @@ +<%@ page contentType="text/html;charset=UTF-8" %> + + + + + + + \ No newline at end of file diff --git a/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/include/menu.jsp b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/include/menu.jsp new file mode 100644 index 0000000000000000000000000000000000000000..bec533bb71f74b8f89a9d00ad1f8b13c1523ff07 --- /dev/null +++ b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/include/menu.jsp @@ -0,0 +1,19 @@ + + + + + + ${menu.name} + + + ${menu.name} + + + + + <%@ include file="/WEB-INF/views/include/menu.jsp"%> + + + + + \ No newline at end of file diff --git a/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/include/supcan.jsp b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/include/supcan.jsp new file mode 100644 index 0000000000000000000000000000000000000000..d798fe0decf4189fabe7793099c8101146b65f9d --- /dev/null +++ b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/include/supcan.jsp @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/include/tableNoData.jsp b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/include/tableNoData.jsp new file mode 100644 index 0000000000000000000000000000000000000000..bb0e833be95ab9736ebf14c943e9d299b7da525e --- /dev/null +++ b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/include/tableNoData.jsp @@ -0,0 +1,4 @@ +<%@ page contentType="text/html;charset=UTF-8" %> + + 请录入相应信息! + \ No newline at end of file diff --git a/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/include/taglib.jsp b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/include/taglib.jsp new file mode 100644 index 0000000000000000000000000000000000000000..a07ec01b4fbfa4025073688c6efff3e1aa8c8262 --- /dev/null +++ b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/include/taglib.jsp @@ -0,0 +1,17 @@ +<%@ taglib prefix="shiro" uri="/WEB-INF/tlds/shiros.tld" %> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> +<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> +<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> +<%@ taglib prefix="fnc" uri="/WEB-INF/tlds/fnc.tld" %> +<%@ taglib prefix="fns" uri="/WEB-INF/tlds/fns.tld" %> +<%@ taglib prefix="sys" tagdir="/WEB-INF/tags/sys" %> +<%@ taglib prefix="act" tagdir="/WEB-INF/tags/act" %> +<%@ taglib prefix="cms" tagdir="/WEB-INF/tags/cms" %> +<%@ taglib prefix="table" tagdir="/WEB-INF/tags/table" %> +<%@ taglib prefix="echarts" uri="/WEB-INF/tlds/echarts.tld" %> +<%@ taglib prefix="t" uri="/menu-tags"%> + + + + \ No newline at end of file diff --git a/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/include/treetable.jsp b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/include/treetable.jsp new file mode 100644 index 0000000000000000000000000000000000000000..1e88b39c6ef989c700e9a4256ed269f7e947b1b1 --- /dev/null +++ b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/include/treetable.jsp @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/include/treeview.jsp b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/include/treeview.jsp new file mode 100644 index 0000000000000000000000000000000000000000..6dc7c1907dfcf211dbc0507d3ca3019bb35610ed --- /dev/null +++ b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/include/treeview.jsp @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/layouts/blank.jsp b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/layouts/blank.jsp new file mode 100644 index 0000000000000000000000000000000000000000..518b581e94cc7ac8cee171ff3a976c8290b965a2 --- /dev/null +++ b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/layouts/blank.jsp @@ -0,0 +1,15 @@ +<%@ page contentType="text/html;charset=UTF-8"%> +<%@ include file="/WEB-INF/views/include/taglib.jsp"%> +<%@ taglib prefix="sitemesh" uri="http://www.opensymphony.com/sitemesh/decorator" %> + + + + + <%@include file="/webpage/include/head.jsp" %> + + + + + + + \ No newline at end of file diff --git a/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/layouts/default.jsp b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/layouts/default.jsp new file mode 100644 index 0000000000000000000000000000000000000000..160dbf2e6e5251c64fb6316f90a6ce5e070bcf47 --- /dev/null +++ b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/layouts/default.jsp @@ -0,0 +1,30 @@ +<%@ page contentType="text/html;charset=UTF-8"%> +<%@ include file="/WEB-INF/views/include/taglib.jsp"%> +<%@ taglib prefix="sitemesh" uri="http://www.opensymphony.com/sitemesh/decorator" %> + + + + - Powered By JeeSpring + <%@include file="/webpage/include/head.jsp" %> + + + + + + + + \ No newline at end of file diff --git a/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/modules/act/actModelCreate.jsp b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/modules/act/actModelCreate.jsp new file mode 100644 index 0000000000000000000000000000000000000000..2b8984c1d59b61f1475162702fde07325fd2ba2f --- /dev/null +++ b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/modules/act/actModelCreate.jsp @@ -0,0 +1,105 @@ +<%@ page contentType="text/html;charset=UTF-8" %> +<%@ include file="/WEB-INF/views/include/taglib.jsp" %> + + + 新建模型 - 模型管理 + + <%@ include file="/WEB-INF/views/include/headMeta.jsp" %> + <%@ include file="/WEB-INF/views/include/headCss.jsp" %> + <%@ include file="/WEB-INF/views/include/headJs.jsp" %> + + + + + + + + + + + 新建模型 + + 刷新 + + + + + + + 模型管理 + 新建模型 + + + + + + 流程分类: + + + + ${dict.label} + + + + + + 模块名称: + + + + + + + 模块标识: + + + + + + + 模块描述: + + + + + + + + + + + + + + +${message} +<%@ include file="/WEB-INF/views/include/footJs.jsp" %> + + diff --git a/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/modules/act/actModelList.jsp b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/modules/act/actModelList.jsp new file mode 100644 index 0000000000000000000000000000000000000000..3a3790519c6faff75aa362b2c606d41f343b85fc --- /dev/null +++ b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/modules/act/actModelList.jsp @@ -0,0 +1,128 @@ +<%@ page contentType="text/html;charset=UTF-8" %> +<%@ include file="/WEB-INF/views/include/taglib.jsp" %> + + + 模型管理 + + <%@ include file="/WEB-INF/views/include/headMeta.jsp" %> + <%@ include file="/WEB-INF/views/include/headCss.jsp" %> + <%@ include file="/WEB-INF/views/include/headJs.jsp" %> + + + + + + + + + + + + 模型管理 + + 查询 + 刷新 + + + + + + + + 模型管理 + 新建模型 + + + + + 流程分类 + + + 全部分类 + + ${dict.label} + + + + + + + + + + + + 流程分类 + 模型ID + 模型标识 + 模型名称 + 版本号 + 创建时间 + 最后更新时间 + 操作 + + + + + + ${fns:getDictLabel(model.category,'act_category','无分类')} + ${model.id} + ${model.key} + ${model.name} + V: ${model.version} + + + + 编辑 + 部署 + 导出 + 删除 + + + + + + ${page.toStringPage()} + + + + +${message} +<%@ include file="/WEB-INF/views/include/footJs.jsp" %> + + diff --git a/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/modules/act/actProcessDeploy.jsp b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/modules/act/actProcessDeploy.jsp new file mode 100644 index 0000000000000000000000000000000000000000..8b1c8365fce4087bc53f59828e4dd59d70c2ad4e --- /dev/null +++ b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/modules/act/actProcessDeploy.jsp @@ -0,0 +1,66 @@ +<%@ page contentType="text/html;charset=UTF-8" %> +<%@ include file="/WEB-INF/views/include/taglib.jsp" %> + + + 部署流程 - 流程管理 + <%@ include file="/WEB-INF/views/include/headMeta.jsp" %> + <%@ include file="/WEB-INF/views/include/headCss.jsp" %> + <%@ include file="/WEB-INF/views/include/headJs.jsp" %> + + + + + + + + + 部署流程 + + 刷新 + + + + + + + 流程管理 + 部署流程 + 运行中的流程 + + + + + + 流程分类: + + + + ${dict.label} + + + + + + 流程文件: + + 选择文件 + + 支持文件格式:zip、bar、bpmn、bpmn20.xml + + + + + + + + + + + + +${message} +<%@ include file="/WEB-INF/views/include/footJs.jsp" %> + + diff --git a/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/modules/act/actProcessList.jsp b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/modules/act/actProcessList.jsp new file mode 100644 index 0000000000000000000000000000000000000000..5bed1d20de6b660991c6db2c3abe93cb1e9011c7 --- /dev/null +++ b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/modules/act/actProcessList.jsp @@ -0,0 +1,138 @@ +<%@ page contentType="text/html;charset=UTF-8" %> +<%@ include file="/WEB-INF/views/include/taglib.jsp" %> + + + 流程管理 + + <%@ include file="/WEB-INF/views/include/headMeta.jsp" %> + <%@ include file="/WEB-INF/views/include/headCss.jsp" %> + <%@ include file="/WEB-INF/views/include/headJs.jsp" %> + + + + + + + + + + + 流程管理 + + 查询 + 刷新 + + + + + + + 流程管理 + 部署流程 + 运行中的流程 + + + + + 流程分类 + + + 全部分类 + + ${dict.label} + + + + + + + + + + 流程分类 + 流程ID + 流程标识 + 流程名称 + 流程版本 + 部署时间 + 流程XML + 流程图片 + 操作 + + + + + + + + ${fns:getDictLabel(process.category,'act_category','无分类')} + ${process.id} + ${process.key} + ${process.name} + V: ${process.version} + + ${process.resourceName} + + ${process.diagramResourceName} + + + + 激活 + + + 挂起 + + 删除 + 转换为模型 + + + + + + ${page.toStringPage()} + + + + +${message} +<%@ include file="/WEB-INF/views/include/footJs.jsp" %> + + diff --git a/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/modules/act/actProcessRunningList.jsp b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/modules/act/actProcessRunningList.jsp new file mode 100644 index 0000000000000000000000000000000000000000..ad15a394a89efcea72ba7d6df34169f60b7d31ca --- /dev/null +++ b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/modules/act/actProcessRunningList.jsp @@ -0,0 +1,117 @@ +<%@ page contentType="text/html;charset=UTF-8" %> +<%@ include file="/WEB-INF/views/include/taglib.jsp" %> + + + 运行中的流程 + <%@ include file="/WEB-INF/views/include/headMeta.jsp" %> + <%@ include file="/WEB-INF/views/include/headCss.jsp" %> + <%@ include file="/WEB-INF/views/include/headJs.jsp" %> + + + + + + + + + + + + 运行中的流程 + + 查询 + 刷新 + + + + + + + + + 流程管理 + 部署流程 + 运行中的流程 + + + + + 流程实例ID: + + + + 流程定义Key: + + + + + + + + 执行ID + 流程实例ID + 流程定义ID + 当前环节 + 是否挂起 + 操作 + + + + + + ${procIns.id} + ${procIns.processInstanceId} + ${procIns.processDefinitionId} + ${procIns.activityId} + ${procIns.suspended} + + + 删除流程 + + + + + + + ${page.toStringPage()} + + + + +${message} +<%@ include file="/WEB-INF/views/include/footJs.jsp" %> + + diff --git a/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/modules/act/actTaskForm.jsp b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/modules/act/actTaskForm.jsp new file mode 100644 index 0000000000000000000000000000000000000000..f9ddbe8152df2f26c11be6d291e0d5534759a8aa --- /dev/null +++ b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/modules/act/actTaskForm.jsp @@ -0,0 +1,42 @@ +<%@ page contentType="text/html;charset=UTF-8" %> +<%@ include file="/WEB-INF/views/include/taglib.jsp"%> + + + 任务表单 + + <%@ include file="/WEB-INF/views/include/headMeta.jsp" %> + <%@ include file="/WEB-INF/views/include/headCss.jsp" %> + <%@ include file="/WEB-INF/views/include/headJs.jsp" %> + + + + + + 待办任务 + 已办任务 + ${empty act.procInsId?"新建任务":"任务处理"} + + + <%-- + 表单信息 --%> + + + + + + + ${message} + <%@ include file="/WEB-INF/views/include/footJs.jsp" %> + + diff --git a/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/modules/act/actTaskHistoricFlow.jsp b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/modules/act/actTaskHistoricFlow.jsp new file mode 100644 index 0000000000000000000000000000000000000000..d30bba3e6a0e78ebab02d52bde9d96425c4776a5 --- /dev/null +++ b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/modules/act/actTaskHistoricFlow.jsp @@ -0,0 +1,15 @@ +<%@ page contentType="text/html;charset=UTF-8" %> +<%@ include file="/WEB-INF/views/include/taglib.jsp"%> + + 执行环节执行人开始时间结束时间提交意见任务历时 + + + ${act.histIns.activityName} + ${act.assigneeName} + + + ${act.comment} + ${act.durationTime} + + + \ No newline at end of file diff --git a/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/modules/act/actTaskHistoricList.jsp b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/modules/act/actTaskHistoricList.jsp new file mode 100644 index 0000000000000000000000000000000000000000..db905dcba49f27f47f54c62e05ba32bf71bce6ef --- /dev/null +++ b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/modules/act/actTaskHistoricList.jsp @@ -0,0 +1,119 @@ +<%@ page contentType="text/html;charset=UTF-8" %> +<%@ include file="/WEB-INF/views/include/taglib.jsp" %> + + + 已办任务 + <%@ include file="/WEB-INF/views/include/headMeta.jsp" %> + <%@ include file="/WEB-INF/views/include/headCss.jsp" %> + <%@ include file="/WEB-INF/views/include/headJs.jsp" %> + + + + + + + + + + 已办任务 + + 查询 + 刷新 + + + + + + + 待办任务 + 已办任务 + 新建任务 + + + + + 流程类型: + + + + + + + + + 完成时间: + " + onclick="WdatePicker({dateFmt:'yyyy-MM-dd'});"/> + -- + " + onclick="WdatePicker({dateFmt:'yyyy-MM-dd'});"/> + + + + + + + + + 标题 + 当前环节 + <%-- + 任务内容 --%> + 流程名称 + 流程版本 + 完成时间 + 操作 + + + + + + + <%-- + --%> + + + + ${fns:abbr(not empty vars.map.title ? vars.map.title : task.id, 60)} + + + ${task.name}<%-- + ${task.name} + ${task.name} --%> + + <%-- + ${task.description} --%> + ${procDef.name} + V: ${procDef.version} + + + 详情 + + + + + + ${page.toStringPage()} + + + + +${message} +<%@ include file="/WEB-INF/views/include/footJs.jsp" %> + + diff --git a/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/modules/act/actTaskMap.jsp b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/modules/act/actTaskMap.jsp new file mode 100644 index 0000000000000000000000000000000000000000..1620f0b9bb40533b76195d0d05820403cc282ec8 --- /dev/null +++ b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/modules/act/actTaskMap.jsp @@ -0,0 +1,26 @@ +<%@page import="java.io.InputStream"%> +<%@page import="org.activiti.engine.impl.*"%> +<%@page import="org.activiti.engine.impl.pvm.*"%> +<%@page import="org.activiti.engine.impl.pvm.process.*"%> +<%@page import="org.activiti.engine.repository.*"%> +<%@page import="org.activiti.engine.*"%> +<%@ page contentType="text/html;charset=UTF-8" %> +<%@ include file="/WEB-INF/views/include/taglib.jsp"%> + + + +流程跟踪 + + + + + + + + + + + diff --git a/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/modules/act/actTaskProcessList.jsp b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/modules/act/actTaskProcessList.jsp new file mode 100644 index 0000000000000000000000000000000000000000..8f6626f3dd89c6b4d58c6e6168f863fceec186a5 --- /dev/null +++ b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/modules/act/actTaskProcessList.jsp @@ -0,0 +1,99 @@ +<%@ page contentType="text/html;charset=UTF-8" %> +<%@ include file="/WEB-INF/views/include/taglib.jsp" %> + + + 发起任务 + + <%@ include file="/WEB-INF/views/include/headMeta.jsp" %> + <%@ include file="/WEB-INF/views/include/headCss.jsp" %> + <%@ include file="/WEB-INF/views/include/headJs.jsp" %> + + + + + + + + + + 新建任务 + + 查询 + 刷新 + + + + + + + 待办任务 + 已办任务 + 新建任务 + + + + + + 流程分类 + + + 全部分类 + + ${dict.label} + + + + + + + + + + 流程分类 + 流程标识 + 流程名称 + 流程图 + 流程版本 + 更新时间 + 操作 + + + + + + + + ${fns:getDictLabel(process.category,'act_category','无分类')} + ${process.key} + ${process.name} + ${process.diagramResourceName}<%-- + ${process.diagramResourceName}--%> + + V: ${process.version} + + + 启动流程 + + + + + + ${page.toStringPage()} + + + + +${message} +<%@ include file="/WEB-INF/views/include/footJs.jsp" %> + + diff --git a/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/modules/act/actTaskTodoList.jsp b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/modules/act/actTaskTodoList.jsp new file mode 100644 index 0000000000000000000000000000000000000000..8fdcf824581949708656440728ae2e5a462612a3 --- /dev/null +++ b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/modules/act/actTaskTodoList.jsp @@ -0,0 +1,151 @@ +<%@ page contentType="text/html;charset=UTF-8" %> +<%@ include file="/WEB-INF/views/include/taglib.jsp" %> + + + 待办任务 + <%@ include file="/WEB-INF/views/include/headMeta.jsp" %> + <%@ include file="/WEB-INF/views/include/headCss.jsp" %> + <%@ include file="/WEB-INF/views/include/headJs.jsp" %> + + + + + + + + + + + 待办任务 + + 查询 + 刷新 + + + + + + + 待办任务 + 已办任务 + 新建任务 + + + + + 流程类型: + + + + + + + + + 创建时间: + " + onclick="WdatePicker({dateFmt:'yyyy-MM-dd'});"/> + -- + " + onclick="WdatePicker({dateFmt:'yyyy-MM-dd'});"/> + + + + + + + + 标题 + 当前环节 + <%-- + 任务内容 --%> + 流程名称 + 流程版本 + 创建时间 + 操作 + + + + + + + <%-- + --%> + + + + + ${fns:abbr(not empty act.vars.map.title ? act.vars.map.title : task.id, 60)} + + + ${fns:abbr(not empty vars.map.title ? vars.map.title : task.id, 60)} + + + + ${task.name} + + <%-- + ${task.description} --%> + ${procDef.name} + V: ${procDef.version} + + + + 签收任务 + + <%-- + 办理 --%> + 任务办理 + + + + 删除任务 + + + 跟踪<%-- + 跟踪2 + 跟踪信息 --%> + + + + + + + + + +${message} +<%@ include file="/WEB-INF/views/include/footJs.jsp" %> + + diff --git a/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/modules/cms/articleForm.jsp b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/modules/cms/articleForm.jsp new file mode 100644 index 0000000000000000000000000000000000000000..d603f5d080f446a9cf23680b9f4b6d998bc4804e --- /dev/null +++ b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/modules/cms/articleForm.jsp @@ -0,0 +1,245 @@ +<%@ page contentType="text/html;charset=UTF-8" %> +<%@ include file="/WEB-INF/views/include/taglib.jsp"%> + + + 文章管理 + + <%@ include file="/WEB-INF/views/include/head.jsp"%> + + + + + 文章列表 + 文章${not empty article.id?'修改':'添加'}查看 + + + + + + 归属栏目: + + + + 外部链接 + + + + + 标题: + + + 颜色: + + + + + + + + 外部链接: + + + 绝对或相对地址。 + + + + 关键字: + + + 多个关键字,用空格分隔。 + + + + 权重: + + + + 置顶 + + 过期时间: + " + onclick="WdatePicker({dateFmt:'yyyy-MM-dd',isShowClear:true});"/> + 数值越大排序越靠前,过期时间可为空,过期后取消置顶。 + + + + 摘要: + + + + + + 缩略图: + + + + + + + 正文: + + + + + + + 来源: + + + + + + 相关文章: + + + + 添加相关 + + + + + 是否允许评论: + + + + + + 推荐位: + + + + + + 发布时间: + + " + onclick="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm:ss',isShowClear:false});"/> + + + + + 发布状态: + + + + + + + + + 自定义内容视图: + + + + + + 自定义内容视图名称必须以"${article_DEFAULT_TEMPLATE}"开始 + + + + 自定义视图参数: + + + 视图参数例如: {count:2, title_show:"yes"} + + + + + + 查看评论: + + + + + + + + + + + + + \ No newline at end of file diff --git a/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/modules/cms/articleList.jsp b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/modules/cms/articleList.jsp new file mode 100644 index 0000000000000000000000000000000000000000..73d74d82d9f1bcad87ec26d350ab60004ba4fb92 --- /dev/null +++ b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/modules/cms/articleList.jsp @@ -0,0 +1,140 @@ +<%@ page contentType="text/html;charset=UTF-8" %> +<%@ include file="/WEB-INF/views/include/taglib.jsp" %> + + + 文章管理 + + <%@ include file="/WEB-INF/views/include/headMeta.jsp" %> + <%@ include file="/WEB-INF/views/include/headCss.jsp" %> + <%@ include file="/WEB-INF/views/include/headJs.jsp" %> + + + + + + + + + + + 文章管理 + + 查询 + 刷新 + + 列表 + + + 增加 + + + + + + + + + + 栏目: + + + + + + 标题: + + + + + 状态: + + + + + + + + + + 栏目 + 标题 + 权重 + 点击数 + 发布者 + 更新时间 + 操作 + + + + + + ${article.category.name} + + ${fns:abbr(article.title,40)} + ${article.weight} + ${article.hits} + ${article.user.name} + + + 访问 + + + 评论 + + 修改 + + ${article.delFlag ne 0?'发布':'删除'} + + + + + + + + + ${page.toStringPage()} + + + + +${message} +<%@ include file="/WEB-INF/views/include/footJs.jsp" %> + + + \ No newline at end of file diff --git a/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/modules/cms/articleSelectList.jsp b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/modules/cms/articleSelectList.jsp new file mode 100644 index 0000000000000000000000000000000000000000..bf823f1de1bb56833038a22028df1778ed06f201 --- /dev/null +++ b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/modules/cms/articleSelectList.jsp @@ -0,0 +1,79 @@ +<%@ page contentType="text/html;charset=UTF-8" %> +<%@ include file="/WEB-INF/views/include/taglib.jsp"%> + + + 选择文章 + + <%@ include file="/WEB-INF/views/include/head.jsp"%> + + + + + + + + 栏目: + 标题: + + + + 选择栏目标题权重点击数发布者更新时间 + + + + + ${article.category.name} + ${fns:abbr(article.title,40)} + ${article.weight} + ${article.hits} + ${article.createBy.name} + + + + + + ${page.getPageHtml()} + + + \ No newline at end of file diff --git a/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/modules/cms/categoryForm.jsp b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/modules/cms/categoryForm.jsp new file mode 100644 index 0000000000000000000000000000000000000000..ec65b0a7c3cc5855b7cb072a22d2d82427b70de1 --- /dev/null +++ b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/modules/cms/categoryForm.jsp @@ -0,0 +1,176 @@ +<%@ page contentType="text/html;charset=UTF-8" %> +<%@ include file="/WEB-INF/views/include/taglib.jsp"%> + + + 栏目管理 + + <%@ include file="/WEB-INF/views/include/head.jsp"%> + + + + + 栏目列表 + 栏目${not empty category.id?'修改':'添加'}查看 + + + + + + 归属机构: + + + + + + 上级栏目: + + + + + + 栏目模型: + + + + + + + + + 栏目名称: + + + + + + 缩略图: + + + + + + + 链接: + + + 栏目超链接地址,优先级“高” + + + + 目标: + + + 栏目超链接打开的目标窗口,新窗口打开,请填写:“_blank” + + + + 描述: + + + + + + 关键字: + + + 填写描述及关键字,有助于搜索引擎优化 + + + + 排序: + + + 栏目的排列次序 + + + + 在导航中显示: + + + 是否在导航中显示该栏目 + + + + 在分类页中显示列表: + + + 是否在分类页中显示该栏目的文章列表 + + + + 展现方式: + + <%-- + + + + --%> + + + + 是否允许评论: + + + + + + 是否需要审核: + + + + + + 自定义列表视图: + + + + + + 自定义列表视图名称必须以"${category_DEFAULT_TEMPLATE}"开始 + + + + 自定义内容视图: + + + + + + 自定义内容视图名称必须以"${article_DEFAULT_TEMPLATE}"开始 + + + + 自定义视图参数: + + + 视图参数例如: {count:2, title_show:"yes"} + + + + + + + + + \ No newline at end of file diff --git a/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/modules/cms/categoryList.jsp b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/modules/cms/categoryList.jsp new file mode 100644 index 0000000000000000000000000000000000000000..1fb07d70bfb0b75875a262e72d87edcbad768978 --- /dev/null +++ b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/modules/cms/categoryList.jsp @@ -0,0 +1,99 @@ +<%@ page contentType="text/html;charset=UTF-8" %> +<%@ include file="/WEB-INF/views/include/taglib.jsp" %> + + + 栏目管理 + <%@ include file="/WEB-INF/views/include/headMeta.jsp" %> + <%@ include file="/WEB-INF/views/include/headCss.jsp" %> + <%@ include file="/WEB-INF/views/include/headJs.jsp" %> + + <%@include file="/WEB-INF/views/include/treetable.jsp" %> + + + + + + + + + + 栏目管理 + + 查询 + 刷新 + + + 添加 + + + 保存排序 + + + + + + + + + + 栏目名称 + 归属机构 + 栏目模型 + 排序 + 导航菜单 + 栏目列表 + 展现方式 + 操作 + + + + ${tpl.name} + ${tpl.office.name} + ${fns:getDictLabel(tpl.module, 'cms_module', '公共模型')} + + + + + + ${tpl.sort} + + + ${fns:getDictLabel(tpl.inMenu, 'show_hide', '隐藏')} + ${fns:getDictLabel(tpl.inList, 'show_hide', '隐藏')} + ${fns:getDictLabel(tpl.showModes, 'cms_show_modes', '默认展现方式')} + + 访问 + + 修改 + 删除 + 添加下级栏目 + + + + + + + + ${page.toStringPage()} + + + + +${message} +<%@ include file="/WEB-INF/views/include/footJs.jsp" %> + + \ No newline at end of file diff --git a/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/modules/cms/cmsIndex.jsp b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/modules/cms/cmsIndex.jsp new file mode 100644 index 0000000000000000000000000000000000000000..5845d412b39191bbe5457cdf342408531a206047 --- /dev/null +++ b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/modules/cms/cmsIndex.jsp @@ -0,0 +1,39 @@ +<%@ page contentType="text/html;charset=UTF-8" %> +<%@ include file="/WEB-INF/views/include/taglib.jsp"%> + + + 内容管理 + + <%@ include file="/WEB-INF/views/include/headMeta.jsp" %> + <%@ include file="/WEB-INF/views/include/headCss.jsp" %> + <%@ include file="/WEB-INF/views/include/headJs.jsp" %> + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/modules/cms/cmsNone.jsp b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/modules/cms/cmsNone.jsp new file mode 100644 index 0000000000000000000000000000000000000000..acc1d98c4462bbd04ad13bc0b50180fa89000cad --- /dev/null +++ b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/modules/cms/cmsNone.jsp @@ -0,0 +1,10 @@ +<%@ page contentType="text/html;charset=UTF-8" %> + + + 公共模型 + + + + 请在左侧“栏目列表”中选择(非公共模型)栏目。 + + \ No newline at end of file diff --git a/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/modules/cms/cmsTree.jsp b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/modules/cms/cmsTree.jsp new file mode 100644 index 0000000000000000000000000000000000000000..160d6c93de628be9ae3b6d1db049380add3d6253 --- /dev/null +++ b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/modules/cms/cmsTree.jsp @@ -0,0 +1,74 @@ +<%@ page contentType="text/html;charset=UTF-8" %> +<%@ include file="/WEB-INF/views/include/taglib.jsp"%> + + + 栏目列表 + + <%@ include file="/WEB-INF/views/include/head.jsp"%> + <%@include file="/WEB-INF/views/include/treeview.jsp" %> + + + + + + + 栏目列表 + + + + + + + + + \ No newline at end of file diff --git a/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/modules/cms/commentList.jsp b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/modules/cms/commentList.jsp new file mode 100644 index 0000000000000000000000000000000000000000..68aeae9974d14f8a88c1b3c704ef1ef05e41f7b1 --- /dev/null +++ b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/modules/cms/commentList.jsp @@ -0,0 +1,113 @@ +<%@ page contentType="text/html;charset=UTF-8" %> +<%@ include file="/WEB-INF/views/include/taglib.jsp" %> + + + 评论管理 + + <%@ include file="/WEB-INF/views/include/headMeta.jsp" %> + <%@ include file="/WEB-INF/views/include/headCss.jsp" %> + <%@ include file="/WEB-INF/views/include/headJs.jsp" %> + + + + + + + + + + + 评论列表 + + 查询 + 刷新 + + + + + + + + + + + + 文档标题: + + + + 状态: + + + + + + + + 评论内容 + 文档标题 + 评论人 + 评论IP + 评论时间 + 操作 + + + + + + ${fns:abbr(fns:replaceHtml(comment.content),40)} + + + ${fns:abbr(comment.title,40)} + ${comment.name} + ${comment.ip} + + + ${comment.delFlag ne 0?'恢复审核':'删除'} + 审核通过 + + + + ${fns:replaceHtml(comment.content)} + + + + + + + + +${message} +<%@ include file="/WEB-INF/views/include/footJs.jsp" %> + + diff --git a/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/modules/cms/front/include/head.jsp b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/modules/cms/front/include/head.jsp new file mode 100644 index 0000000000000000000000000000000000000000..40b83188f9ed83be209aff27de1cc4e466be734b --- /dev/null +++ b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/modules/cms/front/include/head.jsp @@ -0,0 +1,14 @@ +<%@ page contentType="text/html;charset=UTF-8" %><%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> + + + + + + + + + + + + \ No newline at end of file diff --git a/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/modules/cms/front/include/taglib.jsp b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/modules/cms/front/include/taglib.jsp new file mode 100644 index 0000000000000000000000000000000000000000..da41d9d35096f41e3547be81fb54452cbc066db5 --- /dev/null +++ b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/modules/cms/front/include/taglib.jsp @@ -0,0 +1,16 @@ +<%@ taglib prefix="shiro" uri="/WEB-INF/tlds/shiros.tld" %> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> +<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> +<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> +<%@ taglib prefix="fns" uri="/WEB-INF/tlds/fns.tld" %> +<%@ taglib prefix="fnc" uri="/WEB-INF/tlds/fnc.tld" %> +<%@ taglib prefix="sys" tagdir="/WEB-INF/tags/sys" %> +<%@ taglib prefix="act" tagdir="/WEB-INF/tags/act" %> +<%@ taglib prefix="cms" tagdir="/WEB-INF/tags/cms" %> + + + + + + \ No newline at end of file diff --git a/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/modules/cms/front/themes/basic/frontComment.jsp b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/modules/cms/front/themes/basic/frontComment.jsp new file mode 100644 index 0000000000000000000000000000000000000000..6ed2be65c9bb256fe8e46427335accb36101b542 --- /dev/null +++ b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/modules/cms/front/themes/basic/frontComment.jsp @@ -0,0 +1,91 @@ +<%@ page contentType="text/html;charset=UTF-8"%> +<%@ include file="/WEB-INF/views/modules/cms/front/include/taglib.jsp"%> + + + + + + +评论列表 + + + + 姓名: ${comment.name} 时间: + 回复 + ${comment.content} + + + + + 暂时还没有人评论! + + +${page.getPageHtml()} +我要评论 + + \ No newline at end of file diff --git a/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/modules/cms/front/themes/basic/frontGuestbook.jsp b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/modules/cms/front/themes/basic/frontGuestbook.jsp new file mode 100644 index 0000000000000000000000000000000000000000..574bebe9229d3ed91cd8a5901ecaf38c804c81a9 --- /dev/null +++ b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/modules/cms/front/themes/basic/frontGuestbook.jsp @@ -0,0 +1,119 @@ +<%@ page contentType="text/html;charset=UTF-8"%> +<%@ include file="/WEB-INF/views/modules/cms/front/include/taglib.jsp"%> + + + + 留言板 + + + + <%@include file="/WEB-INF/views/modules/cms/front/include/head.jsp" %> + + + + + + + +<%@ include file="/WEB-INF/views/modules/cms/front/themes/basic/layouts/default_head.jsp"%> + + 公共留言 + + + + 姓名: ${guestbook.name} 时间: + 内容:${guestbook.content} + 回复人:${guestbook.reUser.name} 时间: + 回复内容:${guestbook.reContent} + + + + 暂时还没有人留言! + + + ${page.getPageHtml()} + 我要留言 + + + 名称: + + + + + + 邮箱: + + + + + + 电话: + + + + + + 单位: + + + + + + 留言分类: + + + 请选择 + + ${type.label} + + + + + + 留言内容: + + + + + + 验证码: + + + + + + + + 输入有误,请先更正。 + + +<%@ include file="/WEB-INF/views/modules/cms/front/themes/basic/layouts/default_footer.jsp"%> + + \ No newline at end of file diff --git a/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/modules/cms/front/themes/basic/frontIndex.jsp b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/modules/cms/front/themes/basic/frontIndex.jsp new file mode 100644 index 0000000000000000000000000000000000000000..a2c12c896f23a6d38154d6e3adabe4af237ae4f0 --- /dev/null +++ b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/modules/cms/front/themes/basic/frontIndex.jsp @@ -0,0 +1,387 @@ +<%@ page contentType="text/html;charset=UTF-8" %> +<%@ include file="/WEB-INF/views/modules/cms/front/include/taglib.jsp" %> + + + + + + JeeSpringCloud + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + JeeSpringCloud + + + + + + 首页 + + + + + ${category.name} + + + + + + + + + + + + + + + + + + + ${fns:abbr(article.title,28)} + ${fns:abbr(fns:replaceHtml(article.description),260)} + + 查看详情 + + + + + + + + + + + Your browser does not support the video tag. + + + + + + + + + + + 案例 + (一款免费开源的JAVA互联网云快速开发平台)微服务分布式代码生成的敏捷开发系统架构。 + + + + + + + + + + + + + + + + + + + + Beautiful Women + Click to pop up! + + + + + + Collect from 网页模板 + + + + + + + + + + Nulla efficitur quam + Sed ligula accumsan + + + + + + + + + + + + + + + Large Sea Wave + Nam feugiat dui in nisi + + + + + + + + + + + + + Lorem ipsum dolor + Mollis aliquam faucibus urna + + + + + + + + + + + + + + + + + + + + 产品 + + + + + + + + + + + + + + + + + Catherine Jann + Head Designer + + + + + + + + + + + + + + Luke Wara + Speciality Focus + + + + + + + + + + + + + + Mono Mana + Art director + + + + + + + + + + + + + + Phway Phyu + Designer in Chief + + + + + + + + + + + + + Cherry Lynn + Marketing Manager + + + + + + + + + + + + + + + + 联系我们 + + + + + + + + + + + Your message has been sent successfully. + + + E-mail must be valid and message must be longer than 1 character. + + + + + + + + + + + + + + + + + Send Message + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/modules/cms/front/themes/basic/frontIndex_back.jsp b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/modules/cms/front/themes/basic/frontIndex_back.jsp new file mode 100644 index 0000000000000000000000000000000000000000..5ee05ba866ffc7008f8da02dcc43d22a4945e3a7 --- /dev/null +++ b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/modules/cms/front/themes/basic/frontIndex_back.jsp @@ -0,0 +1,43 @@ +<%@ page contentType="text/html;charset=UTF-8"%> +<%@ include file="/WEB-INF/views/modules/cms/front/include/taglib.jsp"%> + + + + 首页 + + + + <%@include file="/WEB-INF/views/modules/cms/front/include/head.jsp" %> + + + + <%@ include file="/WEB-INF/views/modules/cms/front/themes/basic/layouts/default_head.jsp"%> + + + ${fns:abbr(article.title,28)} + ${fns:abbr(fns:replaceHtml(article.articleData.content),260)} + 查看详情 » + + + + 更多>>组织机构 + + ${fns:abbr(article.title,28)} + + + + 更多>>质量监督 + + ${fns:abbr(article.title,28)} + + + + 更多>>政策法规 + + ${fns:abbr(article.title,28)} + + + + <%@ include file="/WEB-INF/views/modules/cms/front/themes/basic/layouts/default_footer.jsp"%> + + \ No newline at end of file diff --git a/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/modules/cms/front/themes/basic/frontList.jsp b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/modules/cms/front/themes/basic/frontList.jsp new file mode 100644 index 0000000000000000000000000000000000000000..2542df37c12545ba999d51cbcb256f4ddb018a33 --- /dev/null +++ b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/modules/cms/front/themes/basic/frontList.jsp @@ -0,0 +1,56 @@ +<%@ page contentType="text/html;charset=UTF-8"%> +<%@ include file="/WEB-INF/views/modules/cms/front/include/taglib.jsp"%> + + + + ${category.name} + + + + <%@include file="/WEB-INF/views/modules/cms/front/include/head.jsp" %> + + + + <%@ include file="/WEB-INF/views/modules/cms/front/themes/basic/layouts/default_head.jsp"%> + + + 栏目列表 + + + + 推荐阅读 + + + + + + + + + + + ${category.name} + + + + /staticViews/cms/images/info.png${article.image}" style="width: 100%;height: auto"> + + ${fns:abbr(article.title,96)} + + ${page.getPageHtml()} + + + + + + + + + + <%@ include file="/WEB-INF/views/modules/cms/front/themes/basic/layouts/default_footer.jsp"%> + + \ No newline at end of file diff --git a/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/modules/cms/front/themes/basic/frontListCategory.jsp b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/modules/cms/front/themes/basic/frontListCategory.jsp new file mode 100644 index 0000000000000000000000000000000000000000..4451326d21e5b4070b115dfd382be56ed975773c --- /dev/null +++ b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/modules/cms/front/themes/basic/frontListCategory.jsp @@ -0,0 +1,62 @@ +<%@ page contentType="text/html;charset=UTF-8"%> +<%@ include file="/WEB-INF/views/modules/cms/front/include/taglib.jsp"%> + + + + ${category.name} + + + + <%@include file="/WEB-INF/views/modules/cms/front/include/head.jsp" %> + + + + <%@ include file="/WEB-INF/views/modules/cms/front/themes/basic/layouts/default_head.jsp"%> + + + + 栏目列表 + + + + 推荐阅读 + + + + + + + + + + + + + + + ${index % 2 eq 0 ? '':''} + + 更多>>${tpl.name} + + + + /staticViews/cms/images/info.png${article.image}" style="width: 100%;height: auto"> + + ${fns:abbr(article.title,40)} + + + + + + ${fns:abbr(link.title,40)} + + + + ${index % 2 ne 0 ? '':''} + + + + + <%@ include file="/WEB-INF/views/modules/cms/front/themes/basic/layouts/default_footer.jsp"%> + + \ No newline at end of file diff --git a/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/modules/cms/front/themes/basic/frontMap.jsp b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/modules/cms/front/themes/basic/frontMap.jsp new file mode 100644 index 0000000000000000000000000000000000000000..0b2a64534e9ced9d254a8304703e29bca2df1285 --- /dev/null +++ b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/modules/cms/front/themes/basic/frontMap.jsp @@ -0,0 +1,50 @@ +<%@ page contentType="text/html;charset=UTF-8"%> +<%@ include file="/WEB-INF/views/modules/cms/front/include/taglib.jsp"%> + + + + 站点地图 + + + + <%@include file="/WEB-INF/views/modules/cms/front/include/head.jsp" %> + + + + + + + + + + + + + + + + ${tpl.name} + + + + + + + + + + + + ${tpl.name} + + + + + \ No newline at end of file diff --git a/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/modules/cms/front/themes/basic/frontSearch.jsp b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/modules/cms/front/themes/basic/frontSearch.jsp new file mode 100644 index 0000000000000000000000000000000000000000..2b3faee67c72f23c386a06311d856ef2841d912a --- /dev/null +++ b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/modules/cms/front/themes/basic/frontSearch.jsp @@ -0,0 +1,101 @@ +<%@ page contentType="text/html;charset=UTF-8"%> +<%@ include file="/WEB-INF/views/modules/cms/front/include/taglib.jsp"%> + + + + 全站搜索 + + + + <%@include file="/WEB-INF/views/modules/cms/front/include/head.jsp" %> + + + + + + + + + + + + + 文章搜索 + 留言搜索 + + + + + 包含以下任意一个关键词 + + + 包含以下全部的关键词 + 不包含以下关键词 + 检索结果每页显示的条数 + + 每页显示10条 + 每页显示20条 + 每页显示30条 + 每页显示40条 + 每页显示50条 + + 最后更新日期范围留言日期范围 + ~ + + + + + + + + + + + + + + + ${article.title} + ${article.description}发布者:${article.createBy.name} 点击数:${article.hits} 发布时间: 更新时间: + 查看全文 + + + + ${fns:getDictLabel(guestbook.type,'cms_guestbook','')} + ${guestbook.content}姓名:${guestbook.name} 留言时间: + 回复:${guestbook.reContent}回复人:${guestbook.reUser.name} 回复时间: + + + + 请键入要查找的关键字。抱歉,没有找到与“${q}”相关内容。建议: + 检查输入是否正确;简化输入词;尝试其他相关词,如同义、近义词等。 + + + ${page.getPageHtml()} + + + \ No newline at end of file diff --git a/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/modules/cms/front/themes/basic/frontViewArticle.jsp b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/modules/cms/front/themes/basic/frontViewArticle.jsp new file mode 100644 index 0000000000000000000000000000000000000000..6e3e52b42b3ebb20da16cacfdbefaa46fefa73ce --- /dev/null +++ b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/modules/cms/front/themes/basic/frontViewArticle.jsp @@ -0,0 +1,72 @@ +<%@ page contentType="text/html;charset=UTF-8"%> +<%@ include file="/WEB-INF/views/modules/cms/front/include/taglib.jsp"%> + + + + ${article.title} - ${category.name} + + + + <%@include file="/WEB-INF/views/modules/cms/front/include/head.jsp" %> + + + + +<%@ include file="/WEB-INF/views/modules/cms/front/themes/basic/layouts/default_head.jsp"%> + + + 栏目列表 + + + + 推荐阅读 + + + + + + + + + + + + + ${article.title} + 摘要:${article.description} + ${article.articleData.content} + 发布者:${article.user.name} 点击数:${article.hits} 发布时间: 更新时间: + + + + + 正在加载评论... + + + + + 相关文章 + + ${fns:abbr(relation[2],30)} + + + + + +<%@ include file="/WEB-INF/views/modules/cms/front/themes/basic/layouts/default_footer.jsp"%> + + \ No newline at end of file diff --git a/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/modules/cms/front/themes/basic/layouts/default.jsp b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/modules/cms/front/themes/basic/layouts/default.jsp new file mode 100644 index 0000000000000000000000000000000000000000..4db49baac27863c97fd10c5bc21b3248ea86e48c --- /dev/null +++ b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/modules/cms/front/themes/basic/layouts/default.jsp @@ -0,0 +1,61 @@ +<%@ page contentType="text/html;charset=UTF-8"%> +<%@ include file="/WEB-INF/views/modules/cms/front/include/taglib.jsp"%> +<%@ taglib prefix="sitemesh" uri="http://www.opensymphony.com/sitemesh/decorator" %> + + + + - ${site.title} - Powered By JeeSpring + <%@include file="/WEB-INF/views/modules/cms/front/include/head.jsp" %> + + + + + + + + + + + + ${site.title} + + + + ${site.id eq '1'?'首 页':'返回主站'} + + + ${category.name} + + + + + ${site.title} + + + + + + ${dict.label} + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/modules/cms/front/themes/basic/layouts/default_footer.jsp b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/modules/cms/front/themes/basic/layouts/default_footer.jsp new file mode 100644 index 0000000000000000000000000000000000000000..2ccbe91b615567af685094c68dbdbad485205221 --- /dev/null +++ b/JeeSpringCloud/jeespring-web/src/main/webapp/WEB-INF/views/modules/cms/front/themes/basic/layouts/default_footer.jsp @@ -0,0 +1,10 @@ +<%@ page contentType="text/html;charset=UTF-8"%> +<%@ include file="/WEB-INF/views/modules/cms/front/include/taglib.jsp"%> + + + + +
${indexSysConfig.description}
为什么不购买一个高级模板主题?
+ ${fns:getUser().name} - ${fns:getUser().roleNames} + Member since Nov. 2012 +
${fns:abbr(fns:replaceHtml(article.description),260)}
Catherine Jann
Luke Wara
Mono Mana
Phway Phyu
Cherry Lynn
${fns:abbr(fns:replaceHtml(article.articleData.content),260)}
查看详情 »