Compare commits

..

41 Commits
main ... client

Author SHA1 Message Date
p97balmkq 534415dd52 ADD file via upload
2 years ago
p97balmkq 19e6c3970f ADD file via upload
2 years ago
p97balmkq 2bd17a3362 ADD file via upload
2 years ago
p97balmkq d754ad85ec ADD file via upload
2 years ago
p97balmkq ed70a48893 ADD file via upload
2 years ago
p97balmkq a3ed62bc21 ADD file via upload
2 years ago
p97balmkq def3153557 ADD file via upload
2 years ago
p97balmkq 16c4c448a4 ADD file via upload
2 years ago
p97balmkq b32155778f ADD file via upload
2 years ago
p97balmkq 33db26e675 ADD file via upload
2 years ago
p97balmkq e2b5c2b142 ADD file via upload
2 years ago
p97balmkq de5a83b9d3 ADD file via upload
2 years ago
p97balmkq 7c3ad3da81 ADD file via upload
2 years ago
p97balmkq e304c3c925 ADD file via upload
2 years ago
p97balmkq 349f2b8cde ADD file via upload
2 years ago
p97balmkq 60f24ad140 ADD file via upload
2 years ago
p97balmkq c16bd68968 ADD file via upload
2 years ago
p97balmkq 45e99eec0f ADD file via upload
2 years ago
p97balmkq 6b9e65e8b4 ADD file via upload
2 years ago
p97balmkq 5987f9fe96 ADD file via upload
2 years ago
p97balmkq 80c8b4836b ADD file via upload
2 years ago
p97balmkq eb311264be ADD file via upload
2 years ago
p97balmkq 2e506c52f7 ADD file via upload
2 years ago
p97balmkq 61cbe3bd6c ADD file via upload
2 years ago
p97balmkq 95dfdcbb63 ADD file via upload
2 years ago
p97balmkq 90670bcfb1 ADD file via upload
2 years ago
p97balmkq 99b84ab6e6 ADD file via upload
2 years ago
p97balmkq 1258e6d0d2 ADD file via upload
2 years ago
p97balmkq c952acd701 ADD file via upload
2 years ago
p97balmkq e7c3ed7572 ADD file via upload
2 years ago
p97balmkq a59f20ad4a ADD file via upload
2 years ago
p97balmkq dbb47b0383 ADD file via upload
2 years ago
p97balmkq 44fc8a2846 ADD file via upload
2 years ago
p97balmkq 6a869a7fd7 ADD file via upload
2 years ago
p97balmkq 29bb7bb312 ADD file via upload
2 years ago
p97balmkq 05f6bb09a0 ADD file via upload
2 years ago
p97balmkq b2c718c74e ADD file via upload
2 years ago
p97balmkq 939b7a44c9 ADD file via upload
2 years ago
p97balmkq 0b85933889 ADD file via upload
2 years ago
p97balmkq 20835c7e81 ADD file via upload
2 years ago
p97balmkq 5cb6a4b8c3 ADD file via upload
2 years ago

@ -1,59 +0,0 @@
package com.spring.entity;
import javax.persistence.Column;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
import java.io.Serializable;
import java.util.Date;
import net.jntoo.db.Query;
@Table(name = "admins")
public class Admins implements Serializable {
@GeneratedValue(generator = "JDBC") // 自增的主键映射
@Id
@Column(name = "id",insertable=false)
private Integer id;
@Column(name = "username")
private String username;
@Column(name = "pwd")
private String pwd;
@Column(name = "addtime")
private String addtime;
private static final long serialVersionUID = 1L;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username == null ? "" : username.trim();
}
public String getPwd() {
return pwd;
}
public void setPwd(String pwd) {
this.pwd = pwd == null ? "" : pwd.trim();
}
public String getAddtime() {
return addtime;
}
public void setAddtime(String addtime) {
this.addtime = addtime == null ? "" : addtime.trim();
}
}

@ -1,193 +0,0 @@
package com.spring.controller;
import com.spring.dao.AdminsMapper;
import com.spring.entity.Admins;
import com.spring.service.AdminsService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import tk.mybatis.mapper.entity.Example;
import util.Request;
import util.Info;
import dao.Query;
import java.util.*;
import dao.CommDAO;
/**
* */
@Controller
public class AdminsController extends BaseController
{
@Autowired
private AdminsMapper dao;
@Autowired
private AdminsService service;
/**
*
*
*/
@RequestMapping("/admins_list")
public String list()
{
// 检测是否有登录,没登录则跳转到登录页面
if(!checkLogin()){
return showError("尚未登录" , "./login.do");
}
String order = Request.get("order" , "id"); // 获取前台提交的URL参数 order 如果没有则设置为id
String sort = Request.get("sort" , "desc"); // 获取前台提交的URL参数 sort 如果没有则设置为desc
int pagesize = Request.getInt("pagesize" , 12); // 获取前台一页多少行数据
Example example = new Example(Admins.class); // 创建一个扩展搜索类
Example.Criteria criteria = example.createCriteria(); // 创建一个扩展搜索条件类
String where = " 1=1 "; // 创建初始条件为1=1
where += getWhere(); // 从方法中获取url 上的参数,并写成 sql条件语句
criteria.andCondition(where); // 将条件写进上面的扩展条件类中
if(sort.equals("desc")){ // 判断前台提交的sort 参数是否等于 desc倒序 是则使用倒序,否则使用正序
example.orderBy(order).desc(); //get connect error 把sql 语句设置成倒序
}else{
example.orderBy(order).asc(); // 把 sql 设置成正序
}
int page = request.getParameter("page") == null ? 1 : Integer.valueOf(request.getParameter("page")); // 获取前台提交的URL参数 page 如果没有则设置为1
page = Math.max(1 , page); // 取两个数的最大值防止page 小于1
List<Admins> list = service.selectPageExample(example , page , pagesize); // 获取当前页的行数
// 将列表写给界面使用
assign("totalCount" , request.getAttribute("totalCount"));
assign("list" , list);
assign("orderby" , order); // 把当前排序结果写进前台
assign("sort" , sort); // 把当前排序结果写进前台
return json(); // 将数据写给前端
}
public String getWhere()
{
_var = new LinkedHashMap(); // 重置数据
String where = " ";
// 以下也是一样的操作判断是否符合条件符合则写入sql 语句
if(!Request.get("username").equals("")) {
where += " AND username LIKE '%"+Request.get("username")+"%' ";
}
return where;
}
@RequestMapping("/admins_add")
public String add()
{
_var = new LinkedHashMap(); // 重置数据
return json(); // 将数据写给前端
}
@RequestMapping("/admins_updt")
public String updt()
{
_var = new LinkedHashMap(); // 重置数据
int id = Request.getInt("id");
// 获取行数据并赋值给前台jsp页面
Admins mmm = service.find(id);
assign("mmm" , mmm);
assign("updtself" , 0);
return json(); // 将数据写给前端
}
@RequestMapping("/admins_updtself")
public String updtself()
{
_var = new LinkedHashMap(); // 重置数据
// 更新个人资料
int id = (int)request.getSession().getAttribute("id");
Admins mmm = service.find(id);
assign("mmm" , mmm);
assign("updtself" , 1);
return json(); // 将数据写给前端
}
/**
*
* @return
*/
@RequestMapping("/adminsinsert")
public String insert()
{
_var = new LinkedHashMap(); // 重置数据
String tmp="";
Admins post = new Admins(); // 创建实体类
// 设置前台提交上来的数据到实体类中
post.setUsername(Request.get("username"));
post.setPwd(Request.get("pwd"));
post.setAddtime(Info.getDateStr());
service.insert(post); // 插入数据
int charuid = post.getId().intValue();
if(isAjax()){
return jsonResult(post);
}
return showSuccess("保存成功" , Request.get("referer").equals("") ? request.getHeader("referer") : Request.get("referer"));
}
/**
*
* @return
*/
@RequestMapping("/adminsupdate")
public String update()
{
_var = new LinkedHashMap(); // 重置数据
// 创建实体类
Admins post = new Admins();
// 将前台表单数据填充到实体类
if(!Request.get("username").equals(""))
post.setUsername(Request.get("username"));
if(!Request.get("pwd").equals(""))
post.setPwd(Request.get("pwd"));
if(!Request.get("addtime").equals(""))
post.setAddtime(Request.get("addtime"));
post.setId(Request.getInt("id"));
service.update(post); // 更新数据
int charuid = post.getId().intValue();
if(isAjax()){
return jsonResult(post);
}
if(Request.getInt("updtself") == 1){
return showSuccess("保存成功" , "admins_updtself.do");
}
return showSuccess("保存成功" , Request.get("referer")); // 弹出保存成功,并跳转到前台提交的 referer 页面
}
/**
*
*/
@RequestMapping("/admins_delete")
public String delete()
{
_var = new LinkedHashMap(); // 重置数据
if(!checkLogin()){
return showError("尚未登录");
}
int id = Request.getInt("id"); // 根据id 删除某行数据
HashMap map = Query.make("admins").find(id);
service.delete(id);// 根据id 删除某行数据
return showSuccess("删除成功",request.getHeader("referer"));//弹出删除成功,并跳回上一页
}
}

@ -1,12 +0,0 @@
package com.spring.dao;
import com.base.MapperBase;
import com.spring.entity.Admins;
import org.springframework.stereotype.Repository;
@Repository
public interface AdminsMapper extends MapperBase<Admins> {
Admins login(Admins admins);
}

@ -1,9 +0,0 @@
package com.spring.service;
import com.base.IServiceBase;
import com.spring.entity.Admins;
public interface AdminsService extends IServiceBase<Admins> {
public Admins login(String username, String password);
public boolean updatePassword(int id, String newPassword);
}

@ -0,0 +1,12 @@
<template>
<div id="app">
<router-view/>
</div>
</template>
<style>
html,body,#app{
width: 100%;
height: 100%;
}
</style>

@ -1,255 +0,0 @@
package com.spring.controller;
import com.alibaba.fastjson.JSON;
import com.spring.util.JsonResult;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;
import java.io.OutputStream;
import java.util.Enumeration;
import java.util.LinkedHashMap;
import java.util.Map;
/**
*
*/
abstract public class BaseController {
@Autowired
protected HttpServletRequest request; // 注入
@Autowired
protected HttpServletResponse response; // 注入
@Autowired
protected HttpSession session; // 注入
protected ModelAndView mView;
protected Map<Object,Object> _var;
/**
*
*/
public BaseController()
{
//request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
//response = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getResponse();
mView = new ModelAndView();
_var = new LinkedHashMap();
}
/**
*
* @param name
* @param value
*/
protected void assign(String name , Object value)
{
request.setAttribute(name , value);
_var.put(name , value);
}
/**
*
* @param message
* @param code
* @param jumpUrl
* @param jumpTime
* @return
*/
protected String showMessage( String message , int code , Object data , String jumpUrl , int jumpTime)
{
if(isAjax())
{
JsonResult jsonResult = new JsonResult(code , message , data);
return renderString(response , JSON.toJSONString(jsonResult));
}
assign("message" , message == null ? data : message);
assign("code" , code);
assign("jumpUrl" , jumpUrl);
assign("jumpTime" , jumpTime);
return "message";
}
/**
* json
* @return
*/
public String json()
{
return jsonResult(_var);
}
public String jsonReturn(String message , int code , Object data)
{
JsonResult result = new JsonResult(code , message , data);
return renderString(response , JSON.toJSONString(result));
}
public String jsonResult(Object data)
{
return jsonReturn(null , 0 , data);
}
public String jsonError(String msg)
{
return jsonReturn(msg , 1 , null);
}
public Object getRequestAttributeMap()
{
//Map<Object,Object> map = new LinkedHashMap();
Enumeration<String> names = request.getAttributeNames();
while (names.hasMoreElements())
{
String key = names.nextElement();
if(!_var.containsKey(key)){
// 没有,则写入
_var.put(key , request.getAttribute(key));
}
}
return _var;
}
public String getJson()
{
Map<Object,Object> map = new LinkedHashMap();
Enumeration<String> names = request.getAttributeNames();
while (names.hasMoreElements())
{
String key = names.nextElement();
Object value = request.getAttribute(key);
map.put(key , value);
}
return renderString(response , JSON.toJSONString(map));
}
/**
*
*
* @param response
* @param string
* @return null
*/
public String renderString(HttpServletResponse response, String string)
{
try
{
request.getSession();
OutputStream stream = response.getOutputStream();
response.setContentType("application/json");
response.setCharacterEncoding("utf-8");
stream.write(string.getBytes());
stream.flush();
}
catch (IOException e)
{
e.printStackTrace();
}
return "success";
}
protected boolean isAjax()
{
String accept = request.getHeader("accept");
if (accept != null && accept.indexOf("application/json") != -1)
{
return true;
}
String xRequestedWith = request.getHeader("X-Requested-With");
if (xRequestedWith != null && xRequestedWith.indexOf("XMLHttpRequest") != -1)
{
return true;
}
String ajax = request.getParameter("format");
if ("json".equalsIgnoreCase(ajax))
{
return true;
}
return false;
}
/**
*
* @return
*/
protected boolean checkLogin()
{
if(request.getSession().getAttribute("username") == null || "".equals(request.getSession().getAttribute("username")))
{
return false;
}
return true;
}
/**
*
* @param message
* @return
*/
protected String showError(String message)
{
return showMessage(message , 1 ,null, "javascript:history(-1);" , 2250);
}
/**
*
* @param message
* @param code
* @return
*/
protected String showError(String message , int code)
{
return showMessage(message , code , null,"javascript:history(-1);" , 2250);
}
/**
*
* @param message
* @param url
* @return
*/
protected String showError(String message , String url)
{
return showMessage(message , 1 ,null, url , 2250);
}
/**
*
* @param data
* @return
*/
protected String showSuccess(Object data )
{
return showMessage(null , 0 ,data, request.getHeader("referer") , 2250);
}
/**
*
* @param data
* @param url
* @return
*/
protected String showSuccess(String data , String url)
{
return showMessage(null , 0 ,data, url , 2250);
}
}

@ -1,41 +0,0 @@
package com.spring;
import net.jntoo.util.AppUtil;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.servlet.ServletRegistrationBean;
import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.context.annotation.Bean;
import org.springframework.web.servlet.DispatcherServlet;
import tk.mybatis.spring.annotation.MapperScan;
/**
* application spring boot
*/
@SpringBootApplication
@MapperScan(basePackages = { "com.spring.dao" }) // mapper 扫描一下这个包
public class BootApplication {
static public ConfigurableApplicationContext content = null;
public static void main(String[] args) {
content = SpringApplication.run(BootApplication.class, args);
//content.getBean(DataSource.class);
System.out.println("["+BootApplication.class.getPackage().getName()+"]");
AppUtil.bootstrap(BootApplication.class.getPackage().getName()+".util");
}
/**
* .do
* @param dispatcherServlet
* @return
*/
/*
@Bean
public ServletRegistrationBean servletRegistrationBean(DispatcherServlet dispatcherServlet) {
ServletRegistrationBean bean = new ServletRegistrationBean(dispatcherServlet);
bean.addUrlMappings("*.do");
return bean;
}
*/
}

@ -1,201 +0,0 @@
package com.spring.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import util.DESUtil;
import javax.imageio.ImageIO;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpSession;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.ByteArrayOutputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.nio.ByteBuffer;
import java.util.Base64;
import java.util.Random;
/**
*
*/
@Controller
public class CaptchaController extends BaseController {
/**
* ,session random
*/
@RequestMapping("/captcha")
public String Index()
{
// 把验证码字符串写入session 中,保存待下次验证时使用
String sRand = createRandomString(4);
try {
// 输出渲染好的内容到前端浏览器
if(isAjax()){
String result = null;
do {
try{
result = DESUtil.encrypt("CaptchControllerPassword",sRand);
}catch (Exception e){
result = null;
}
if(result!= null){
if(!sRand.equals(DESUtil.decrypt("CaptchControllerPassword" , result))){
result = null; // 解不出来所以出错
}
}
}while (result == null);
assign("url" , "/randtocaptch?captchToken="+ urlencode(result));
assign("token" , result);
return json();
}else{
//byte[] img = xxx;
response.setContentType("image/jpeg"); // 定义输出类型为 图片
response.setHeader("Pragma","No-cache"); // 设置为无缓存
response.setHeader("Cache-Control","no-cache"); // 设置为无缓存
response.setDateHeader("Expires", 0); // 设置缓存时间为0秒后过期
request.getSession().setAttribute("random",sRand);
ServletOutputStream stream = response.getOutputStream();
createCaptch(sRand,stream);
stream.flush();
stream.close();
}
}catch (Exception e){
e.printStackTrace();
}
return "success";
}
/**
* url
* @param str
* @return
*/
public static String urlencode(Object str)
{
try{
return java.net.URLEncoder.encode(String.valueOf(str), "UTF-8");
}catch (Exception e){
e.printStackTrace();
}
return str.toString();
}
/**
* 使
* @return
*/
@RequestMapping("/randtocaptch")
public String getCaptch() throws IOException {
String captchToken = request.getParameter("captchToken");
String sRand = DESUtil.decrypt("CaptchControllerPassword" , captchToken);
HttpSession session = request.getSession();
{
//byte[] img = xxx;
response.setContentType("image/jpeg"); // 定义输出类型为 图片
response.setHeader("Pragma","No-cache"); // 设置为无缓存
response.setHeader("Cache-Control","no-cache"); // 设置为无缓存
response.setDateHeader("Expires", 0); // 设置缓存时间为0秒后过期
ServletOutputStream stream = response.getOutputStream();
createCaptch(sRand,stream);
stream.flush();
stream.close();
}
return "success";
}
private String createRandomString(int len)
{
// 生成随机数类
Random random = new Random();
String result = "";
for (int i=0;i<len;i++){
String rand = String.valueOf(random.nextInt(10));
result += rand;
}
return result;
}
private void createCaptch(String randomstr , OutputStream stream)
{
int width=60, height=20; // 定义图片宽为 60 高度为 20
// 创建图片缓冲区
BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
// 获取渲染画板
Graphics g = image.getGraphics();
// 生成随机数类
Random random = new Random();
// 设置颜色
g.setColor(getRandColor(200,250));
// 绘制矩形
g.fillRect(0, 0, width, height);
// 设置字体信息
g.setFont(new Font("Times New Roman",Font.PLAIN,18));
// 设置颜色信息
g.setColor(getRandColor(160,200));
// 写入干扰线
for (int i=0;i<155;i++)
{
int x = random.nextInt(width);
int y = random.nextInt(height);
int xl = random.nextInt(12);
int yl = random.nextInt(12);
g.drawLine(x,y,x+xl,y+yl);
}
// 写入验证码字符串
for (int i=0;i<randomstr.length();i++){
String rand = randomstr.substring(i,i+1); //String.valueOf(random.nextInt(10));
g.setColor(new Color(20+random.nextInt(110),20+random.nextInt(110),20+random.nextInt(110)));
g.drawString(rand,13*i+6,16);
}
g.dispose(); // 释放画板
try {
// 输出渲染好的内容到前端浏览器
ImageIO.write(image, "JPEG", stream);
stream.flush();
stream.close();
}catch (Exception e){
e.printStackTrace();
}
}
/**
*
* @param fc
* @param bc
* @return
*/
protected Color getRandColor(int fc, int bc)
{
Random random = new Random();
if(fc>255) fc=255;
if(bc>255) bc=255;
int r=fc+random.nextInt(bc-fc);
int g=fc+random.nextInt(bc-fc);
int b=fc+random.nextInt(bc-fc);
return new Color(r,g,b);
}
}

@ -1,98 +0,0 @@
package com.spring.util;
import net.jntoo.annotation.QueryCollect;
import net.jntoo.db.Collect;
import util.Request;
import javax.servlet.http.HttpServletRequest;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.util.HashMap;
import java.util.Map;
/**
* jntoo-query.jar
*/
@QueryCollect
public class CollectList extends Collect {
protected HttpServletRequest request;
public CollectList(Long count, Integer pagesize) {
super(count , pagesize);
}
public CollectList(Long count, Integer pagesize, Integer page)
{
super(count, pagesize, page);
}
/**
* url
* @return
*/
@Override
protected String getRequestUrlPath() {
request = Request.getRequest();
String queryString = request.getQueryString();
if(queryString == null){
queryString = "";
}
StringBuffer buffer = new StringBuffer(queryString.length()+16);
String requestURI = request.getRequestURI();
buffer.append(requestURI).append("?");
Map<String,String[]> param = request.getParameterMap();
String name = "";
String value = "";
boolean isSearchPage = false;
int page = -1;
for (Map.Entry<String, String[]> entry : param.entrySet()) {
try{
name = entry.getKey();
String[] values = entry.getValue();
if(name.equals("page")){
page = Integer.valueOf(values[0]).intValue();
buffer.append(name).append("=").append("{page}").append("&");
isSearchPage = true;
} else if (null == values) {
buffer.append(name).append("=").append("&");
} else if (values.length>1) {
for (int i = 0; i < values.length; i++) { //用于请求参数中有多个相同名称
value = URLEncoder.encode(values[i] , "UTF-8");
buffer.append(name).append("=").append(value).append("&");
}
//value = value.substring(0, value.length() - 1);
} else {
value = URLEncoder.encode(values[0] , "UTF-8");
buffer.append(name).append("=").append(value).append("&");//用于请求参数中请求参数名唯一
}
}catch (UnsupportedEncodingException e){
e.printStackTrace();
}
}
if(this.page == -1){
this.page = page;
}
this.page = Math.max(this.page , 1);
if(!isSearchPage){
buffer.append("page={page}&");
}
String result = buffer.toString();
return result.substring(0 , result.length()-1);
}
/**
*
*/
@Override
protected void readerReady() {
String info = getInfo();
HashMap map = new HashMap();
map.put("info" , info);
request.setAttribute("page" , map);
request.setAttribute("totalCount" , count);
}
}

@ -1,141 +0,0 @@
package dao;
import com.spring.util.QueryConnection;
import net.jntoo.db.Query;
import java.sql.*;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
/**
*
*/
public class CommDAO {
/**
*
* @return
*/
static public Connection getConn()
{
return new QueryConnection().getConnect();
}
/**
* sql
* @param sql
* @return
*/
public HashMap find(String sql) {
HashMap map = new HashMap();
//List<HashMap> list = new ArrayList();
try {
Statement st = getConn().createStatement();
ResultSet rs = st.executeQuery(sql);
ResultSetMetaData rsmd = rs.getMetaData();
while (rs.next()) {
//HashMap map = new HashMap();
int i = rsmd.getColumnCount();
for (int j = 1; j <= i; j++) {
if (!rsmd.getColumnName(j).equals("ID")) {
String str = rs.getString(j) == null ? "" : rs.getString(j);
if (str.equals("null")) str = "";
map.put(rsmd.getColumnName(j), str);
} else
map.put("id", rs.getString(j));
}
//list.add(map);
break;
}
rs.close();
st.close();
System.out.println(sql);
} catch (SQLException e) {
// TODO Auto-generated catch block
//e.printStackTrace();
int code = e.getErrorCode();
String message = e.getMessage();
System.err.println("SQL execute Error"+sql);
System.err.println("code:"+code);
System.err.println("Message:"+message);
}
return map;
}
/**
* sql
* @param sql
* @return
*/
public long commOper(String sql) {
long autoInsertId = -1;
try {
Statement st = getConn().createStatement();
st.executeUpdate(sql , Statement.RETURN_GENERATED_KEYS);
ResultSet rs = st.getGeneratedKeys();
while(rs.next()){
autoInsertId = rs.getLong(1);
}
rs.close();
st.close();
System.out.println(sql);
} catch (SQLException e) {
// TODO Auto-generated catch block
//e.printStackTrace();
int code = e.getErrorCode();
String message = e.getMessage();
System.err.println("SQL execute Error"+sql);
System.err.println("code:"+code);
System.err.println("Message:"+message);
}
return autoInsertId;
}
/**
*
* @param sql
* @return
*/
public List<HashMap> select(String sql) {
List<HashMap> list = new ArrayList();
try {
Statement st = getConn().createStatement();
ResultSet rs = st.executeQuery(sql);
ResultSetMetaData rsmd = rs.getMetaData();
while (rs.next()) {
HashMap map = new HashMap();
int i = rsmd.getColumnCount();
for (int j = 1; j <= i; j++) {
if (!rsmd.getColumnName(j).equals("ID")) {
String str = rs.getString(j) == null ? "" : rs.getString(j);
if (str.equals("null")) str = "";
map.put(rsmd.getColumnName(j), str);
} else
map.put("id", rs.getString(j));
}
list.add(map);
}
rs.close();
st.close();
System.out.println(sql);
} catch (SQLException e) {
// TODO Auto-generated catch block
if (sql.equals("show tables"))
list = select("select table_name from INFORMATION_SCHEMA.tables");
else{
int code = e.getErrorCode();
String message = e.getMessage();
System.err.println("SQL execute Error"+sql);
System.err.println("code:"+code);
System.err.println("Message:"+message);
}
//e.printStackTrace();
}
return list;
}
}

@ -1,186 +0,0 @@
package com.spring.controller;
import dao.CommDAO;
import net.jntoo.db.Query;
import com.alibaba.fastjson.*;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import util.Request;
import java.util.List;
import java.util.Map;
/**
*
*/
@Controller
public class CommonController extends BaseController{
/**
* 使ajax
* @return
*/
@RequestMapping(value = "/checkno")
@ResponseBody
public String checkon()
{
String table = request.getParameter("table");
String col = request.getParameter("col");
String checktype = request.getParameter("checktype");
String value = request.getParameter(col);
if(checktype.equals("insert")){
if(Query.make(table).where(col , value).count() > 0){
return "false";
}else{
return "true";
}
}else if(checktype.equals("update")){
String id = request.getParameter("id") == null ? "" : request.getParameter("id");
if(Query.make(table).where(col , value).where("id" , "neq" , id).count() > 0){
return "false";
}else{
return "true";
}
}
return "false";
}
/**
*
* @return
*/
@RequestMapping("/sh")
@ResponseBody
public String sh()
{
String yuan=request.getParameter("yuan");
String id=request.getParameter("id");
String tablename=request.getParameter("tablename");
String sql="";
if(yuan.equals("是"))
{
sql="update "+tablename+" set issh='否' where id="+id;
}
else
{
sql="update "+tablename+" set issh='是' where id="+id;
}
new CommDAO().commOper(sql);
if(isAjax())
{
jsonResult("ok");
return "";
}
return "<script>location.href='"+request.getHeader("Referer")+"';</script>";
}
/**
*
* @return
*/
@RequestMapping("/tableAjax")
@ResponseBody
public String tableFind()
{
String table = request.getParameter("table");
String id = request.getParameter("id");
Map map = Query.make(table).where("id" , id).find();
//JSONObject json = JSONObject.parse(map);
return JSON.toJSONString(map);//.toString();
}
/**
*
*
*/
@RequestMapping("/selectView")
public String selectView()
{
String key = request.getParameter("key");
String table = request.getParameter("table");
String value = request.getParameter("value");
Map data = Query.make(table).where(key,value).find();
return jsonResult(data);
}
/**
*
*
*/
@RequestMapping("/selectAll")
public String selectAll()
{
String table = request.getParameter("table");
Query query = Query.make(table);
if(request.getParameter("where") != null){
JSONObject where = JSON.parseObject(Request.get("where"));
for(Map.Entry entry:where.entrySet())
{
String key = (String)entry.getKey();
Object value = entry.getValue();
if(value instanceof JSONObject)
{
JSONObject w = (JSONObject) value;
query.where(key , w.getString("exp") , w.getString("value"));
}else if(value instanceof JSONArray){
JSONArray w = (JSONArray) value;
query.where(key , (String) w.get(0) , w.get(1));
}else{
query.where(key , value);
}
}
}
if(request.getParameter("limit")!=null)
{
query.limit(Request.get("limit"));
}
if(request.getParameter("order")!=null)
{
query.order(Request.get("order"));
}
if(request.getParameter("field")!=null)
{
query.field(Request.get("field"));
}
List list = query.select();
return jsonResult(list);
}
/**
*
* @return
*/
@RequestMapping("/selectUpdateSearch")
@ResponseBody
public String selectUpdateSearch()
{
String table = Request.get("table");
Query query = Query.make(table);
String limit = "50";
JSONObject where = JSON.parseObject(Request.get("where"));
for(Map.Entry entry:where.entrySet())
{
String key = (String)entry.getKey();
Object value = entry.getValue();
if("limit".equals(key)){
limit = String.valueOf(value);
}else{
if(value instanceof JSONObject)
{
JSONObject w = (JSONObject) value;
query.where(key , w.getString("exp") , w.getString("value"));
}else if(value instanceof JSONArray){
JSONArray w = (JSONArray) value;
query.where(key , (String) w.get(0) , w.get(1));
}else{
query.where(key , value);
}
}
}
List list = query.order("id desc").limit(limit).select();
return JSON.toJSONString(list);
}
}

@ -1,101 +0,0 @@
package util;
import javax.crypto.Cipher;
import javax.crypto.CipherInputStream;
import javax.crypto.SecretKeyFactory;
import javax.crypto.spec.DESKeySpec;
import javax.crypto.spec.IvParameterSpec;
import java.io.*;
import java.security.Key;
import java.util.Base64;
public class DESUtil {
/**
* 8
*/
private final static String IV_PARAMETER = "12345678";
/**
*
*/
private static final String ALGORITHM = "DES";
/**
* /--
*/
private static final String CIPHER_ALGORITHM = "DES/CBC/PKCS5Padding";
/**
*
*/
private static final String CHARSET = "utf-8";
/**
* key
*
* @param password
* @return
* @throws Exception
*/
private static Key generateKey(String password) throws Exception {
DESKeySpec dks = new DESKeySpec(password.getBytes(CHARSET));
SecretKeyFactory keyFactory = SecretKeyFactory.getInstance(ALGORITHM);
return keyFactory.generateSecret(dks);
}
/**
* DES
*
* @param password 8
* @param data
* @return
*/
public static String encrypt(String password, String data) {
if (password== null || password.length() < 8) {
throw new RuntimeException("加密失败key不能小于8位");
}
if (data == null)
return null;
try {
Key secretKey = generateKey(password);
Cipher cipher = Cipher.getInstance(CIPHER_ALGORITHM);
IvParameterSpec iv = new IvParameterSpec(IV_PARAMETER.getBytes(CHARSET));
cipher.init(Cipher.ENCRYPT_MODE, secretKey, iv);
byte[] bytes = cipher.doFinal(data.getBytes(CHARSET));
//JDK1.8及以上可直接使用Base64JDK1.7及以下可以使用BASE64Encoder
//Android平台可以使用android.util.Base64
return new String(Base64.getEncoder().encode(bytes));
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
/**
* DES
*
* @param password 8
* @param data
* @return
*/
public static String decrypt(String password, String data) {
if (password== null || password.length() < 8) {
throw new RuntimeException("加密失败key不能小于8位");
}
if (data == null)
return null;
try {
Key secretKey = generateKey(password);
Cipher cipher = Cipher.getInstance(CIPHER_ALGORITHM);
IvParameterSpec iv = new IvParameterSpec(IV_PARAMETER.getBytes(CHARSET));
cipher.init(Cipher.DECRYPT_MODE, secretKey, iv);
return new String(cipher.doFinal(Base64.getDecoder().decode(data.getBytes(CHARSET))), CHARSET);
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
}

@ -1,104 +0,0 @@
package com.spring.entity;
import javax.persistence.Column;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
import java.io.Serializable;
import java.util.Date;
import net.jntoo.db.Query;
@Table(name = "difangmeishi")
public class Difangmeishi implements Serializable {
@GeneratedValue(generator = "JDBC") // 自增的主键映射
@Id
@Column(name = "id",insertable=false)
private Integer id;
@Column(name = "meishibianhao")
private String meishibianhao;
@Column(name = "mingcheng")
private String mingcheng;
@Column(name = "fujinjingdian")
private String fujinjingdian;
@Column(name = "fenlei")
private String fenlei;
@Column(name = "tupian")
private String tupian;
@Column(name = "jiage")
private Double jiage;
@Column(name = "meishijianjie")
private String meishijianjie;
@Column(name = "addtime")
private String addtime;
private static final long serialVersionUID = 1L;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getMeishibianhao() {
return meishibianhao;
}
public void setMeishibianhao(String meishibianhao) {
this.meishibianhao = meishibianhao == null ? "" : meishibianhao.trim();
}
public String getMingcheng() {
return mingcheng;
}
public void setMingcheng(String mingcheng) {
this.mingcheng = mingcheng == null ? "" : mingcheng.trim();
}
public String getFujinjingdian() {
return fujinjingdian;
}
public void setFujinjingdian(String fujinjingdian) {
this.fujinjingdian = fujinjingdian == null ? "" : fujinjingdian.trim();
}
public String getFenlei() {
return fenlei;
}
public void setFenlei(String fenlei) {
this.fenlei = fenlei == null ? "" : fenlei.trim();
}
public String getTupian() {
return tupian;
}
public void setTupian(String tupian) {
this.tupian = tupian == null ? "" : tupian.trim();
}
public Double getJiage() {
return jiage;
}
public void setJiage(Double jiage) {
this.jiage = jiage == null ? 0.0f : jiage;
}
public String getMeishijianjie() {
return meishijianjie;
}
public void setMeishijianjie(String meishijianjie) {
this.meishijianjie = meishijianjie == null ? "" : meishijianjie.trim();
}
public String getAddtime() {
return addtime;
}
public void setAddtime(String addtime) {
this.addtime = addtime == null ? "" : addtime.trim();
}
}

@ -1,268 +0,0 @@
package com.spring.controller;
import com.spring.dao.DifangmeishiMapper;
import com.spring.entity.Difangmeishi;
import com.spring.service.DifangmeishiService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import tk.mybatis.mapper.entity.Example;
import util.Request;
import util.Info;
import dao.Query;
import java.util.*;
import dao.CommDAO;
/**
* */
@Controller
public class DifangmeishiController extends BaseController
{
@Autowired
private DifangmeishiMapper dao;
@Autowired
private DifangmeishiService service;
/**
*
*
*/
@RequestMapping("/difangmeishi_list")
public String list()
{
// 检测是否有登录,没登录则跳转到登录页面
if(!checkLogin()){
return showError("尚未登录" , "./login.do");
}
String order = Request.get("order" , "id"); // 获取前台提交的URL参数 order 如果没有则设置为id
String sort = Request.get("sort" , "desc"); // 获取前台提交的URL参数 sort 如果没有则设置为desc
int pagesize = Request.getInt("pagesize" , 12); // 获取前台一页多少行数据
Example example = new Example(Difangmeishi.class); // 创建一个扩展搜索类
Example.Criteria criteria = example.createCriteria(); // 创建一个扩展搜索条件类
String where = " 1=1 "; // 创建初始条件为1=1
where += getWhere(); // 从方法中获取url 上的参数,并写成 sql条件语句
criteria.andCondition(where); // 将条件写进上面的扩展条件类中
if(sort.equals("desc")){ // 判断前台提交的sort 参数是否等于 desc倒序 是则使用倒序,否则使用正序
example.orderBy(order).desc(); // 把sql 语句设置成倒序
}else{
example.orderBy(order).asc(); // 把 sql 设置成正序
}
int page = request.getParameter("page") == null ? 1 : Integer.valueOf(request.getParameter("page")); // 获取前台提交的URL参数 page 如果没有则设置为1
page = Math.max(1 , page); // 取两个数的最大值防止page 小于1
List<Difangmeishi> list = service.selectPageExample(example , page , pagesize); // 获取当前页的行数
assign("jingdianxinxiList" , new CommDAO().select("SELECT * FROM jingdianxinxi ORDER BY id desc"));
assign("meishifenleiList" , new CommDAO().select("SELECT * FROM meishifenlei ORDER BY id desc"));
// 将列表写给界面使用
assign("totalCount" , request.getAttribute("totalCount"));
assign("list" , list);
assign("orderby" , order); // 把当前排序结果写进前台
assign("sort" , sort); // 把当前排序结果写进前台
return json(); // 将数据写给前端
}
public String getWhere()
{
_var = new LinkedHashMap(); // 重置数据
String where = " ";
// 以下也是一样的操作判断是否符合条件符合则写入sql 语句
if(!Request.get("meishibianhao").equals("")) {
where += " AND meishibianhao LIKE '%"+Request.get("meishibianhao")+"%' ";
}
if(!Request.get("mingcheng").equals("")) {
where += " AND mingcheng LIKE '%"+Request.get("mingcheng")+"%' ";
}
if(!Request.get("fujinjingdian").equals("")) {
where += " AND fujinjingdian ='"+Request.get("fujinjingdian")+"' ";
}
if(!Request.get("fenlei").equals("")) {
where += " AND fenlei ='"+Request.get("fenlei")+"' ";
}
return where;
}
/**
*
*
*/
@RequestMapping("/difangmeishilist")
public String index()
{
String order = Request.get("order" , "id");
String sort = Request.get("sort" , "desc");
Example example = new Example(Difangmeishi.class);
Example.Criteria criteria = example.createCriteria();
String where = " 1=1 ";
where += getWhere();
criteria.andCondition(where);
if(sort.equals("desc")){
example.orderBy(order).desc();
}else{
example.orderBy(order).asc();
}
int page = request.getParameter("page") == null ? 1 : Integer.valueOf(request.getParameter("page"));
page = Math.max(1 , page);
List<Difangmeishi> list = service.selectPageExample(example , page , 12);
assign("mapmeishifenlei5" , new CommDAO().select("SELECT id,fenleimingcheng FROM meishifenlei")); assign("totalCount" , request.getAttribute("totalCount"));
assign("list" , list);
assign("where" , where);
assign("orderby" , order);
assign("sort" , sort);
return json();
}
@RequestMapping("/difangmeishi_add")
public String add()
{
_var = new LinkedHashMap(); // 重置数据
assign("jingdianxinxiList" , new CommDAO().select("SELECT * FROM jingdianxinxi ORDER BY id desc"));
assign("meishifenleiList" , new CommDAO().select("SELECT * FROM meishifenlei ORDER BY id desc"));
return json(); // 将数据写给前端
}
@RequestMapping("/difangmeishi_updt")
public String updt()
{
_var = new LinkedHashMap(); // 重置数据
int id = Request.getInt("id");
// 获取行数据并赋值给前台jsp页面
Difangmeishi mmm = service.find(id);
assign("mmm" , mmm);
assign("updtself" , 0);
assign("jingdianxinxiList" , new CommDAO().select("SELECT * FROM jingdianxinxi ORDER BY id desc"));
assign("meishifenleiList" , new CommDAO().select("SELECT * FROM meishifenlei ORDER BY id desc"));
return json(); // 将数据写给前端
}
/**
*
* @return
*/
@RequestMapping("/difangmeishiinsert")
public String insert()
{
_var = new LinkedHashMap(); // 重置数据
String tmp="";
Difangmeishi post = new Difangmeishi(); // 创建实体类
// 设置前台提交上来的数据到实体类中
post.setMeishibianhao(Request.get("meishibianhao"));
post.setMingcheng(Request.get("mingcheng"));
post.setFujinjingdian(Request.get("fujinjingdian"));
post.setFenlei(Request.get("fenlei"));
post.setTupian(Request.get("tupian"));
post.setJiage(Request.getDouble("jiage"));
post.setMeishijianjie(Request.get("meishijianjie"));
post.setAddtime(Info.getDateStr());
service.insert(post); // 插入数据
int charuid = post.getId().intValue();
if(isAjax()){
return jsonResult(post);
}
return showSuccess("保存成功" , Request.get("referer").equals("") ? request.getHeader("referer") : Request.get("referer"));
}
/**
*
* @return
*/
@RequestMapping("/difangmeishiupdate")
public String update()
{
_var = new LinkedHashMap(); // 重置数据
// 创建实体类
Difangmeishi post = new Difangmeishi();
// 将前台表单数据填充到实体类
if(!Request.get("meishibianhao").equals(""))
post.setMeishibianhao(Request.get("meishibianhao"));
if(!Request.get("mingcheng").equals(""))
post.setMingcheng(Request.get("mingcheng"));
if(!Request.get("fujinjingdian").equals(""))
post.setFujinjingdian(Request.get("fujinjingdian"));
if(!Request.get("fenlei").equals(""))
post.setFenlei(Request.get("fenlei"));
if(!Request.get("tupian").equals(""))
post.setTupian(Request.get("tupian"));
if(!Request.get("jiage").equals(""))
post.setJiage(Request.getDouble("jiage"));
if(!Request.get("meishijianjie").equals(""))
post.setMeishijianjie(Request.get("meishijianjie"));
if(!Request.get("addtime").equals(""))
post.setAddtime(Request.get("addtime"));
post.setId(Request.getInt("id"));
service.update(post); // 更新数据
int charuid = post.getId().intValue();
if(isAjax()){
return jsonResult(post);
}
return showSuccess("保存成功" , Request.get("referer")); // 弹出保存成功,并跳转到前台提交的 referer 页面
}
/**
*
*/
@RequestMapping("/difangmeishi_detail")
public String detail()
{
_var = new LinkedHashMap(); // 重置数据
int id = Request.getInt("id");
Difangmeishi map = service.find(id); // 根据前台url 参数中的id获取行数据
assign("map" , map); // 把数据写到前台
return json(); // 将数据写给前端
}
/**
*
*/
@RequestMapping("/difangmeishidetail")
public String detailweb()
{
_var = new LinkedHashMap(); // 重置数据
int id = Request.getInt("id");
Difangmeishi map = service.find(id);
assign("map" , map);
return json(); // 将数据写给前端
}
/**
*
*/
@RequestMapping("/difangmeishi_delete")
public String delete()
{
_var = new LinkedHashMap(); // 重置数据
if(!checkLogin()){
return showError("尚未登录");
}
int id = Request.getInt("id"); // 根据id 删除某行数据
HashMap map = Query.make("difangmeishi").find(id);
service.delete(id);// 根据id 删除某行数据
return showSuccess("删除成功",request.getHeader("referer"));//弹出删除成功,并跳回上一页
}
}

@ -1,11 +0,0 @@
package com.spring.dao;
import com.base.MapperBase;
import com.spring.entity.Difangmeishi;
import org.springframework.stereotype.Repository;
@Repository
public interface DifangmeishiMapper extends MapperBase<Difangmeishi> {
}

@ -1,50 +0,0 @@
package com.spring.entity;
import javax.persistence.Column;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
import java.io.Serializable;
import java.util.Date;
import net.jntoo.db.Query;
@Table(name = "diqu")
public class Diqu implements Serializable {
@GeneratedValue(generator = "JDBC") // 自增的主键映射
@Id
@Column(name = "id",insertable=false)
private Integer id;
@Column(name = "diqumingcheng")
private String diqumingcheng;
@Column(name = "addtime")
private String addtime;
private static final long serialVersionUID = 1L;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getDiqumingcheng() {
return diqumingcheng;
}
public void setDiqumingcheng(String diqumingcheng) {
this.diqumingcheng = diqumingcheng == null ? "" : diqumingcheng.trim();
}
public String getAddtime() {
return addtime;
}
public void setAddtime(String addtime) {
this.addtime = addtime == null ? "" : addtime.trim();
}
}

@ -1,175 +0,0 @@
package com.spring.controller;
import com.spring.dao.DiquMapper;
import com.spring.entity.Diqu;
import com.spring.service.DiquService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import tk.mybatis.mapper.entity.Example;
import util.Request;
import util.Info;
import dao.Query;
import java.util.*;
import dao.CommDAO;
/**
* */
@Controller
public class DiquController extends BaseController
{
@Autowired
private DiquMapper dao;
@Autowired
private DiquService service;
/**
*
*
*/
@RequestMapping("/diqu_list")
public String list()
{
// 检测是否有登录,没登录则跳转到登录页面
if(!checkLogin()){
return showError("尚未登录" , "./login.do");
}
String order = Request.get("order" , "id"); // 获取前台提交的URL参数 order 如果没有则设置为id
String sort = Request.get("sort" , "desc"); // 获取前台提交的URL参数 sort 如果没有则设置为desc
int pagesize = Request.getInt("pagesize" , 12); // 获取前台一页多少行数据
Example example = new Example(Diqu.class); // 创建一个扩展搜索类
Example.Criteria criteria = example.createCriteria(); // 创建一个扩展搜索条件类
String where = " 1=1 "; // 创建初始条件为1=1
where += getWhere(); // 从方法中获取url 上的参数,并写成 sql条件语句
criteria.andCondition(where); // 将条件写进上面的扩展条件类中
if(sort.equals("desc")){ // 判断前台提交的sort 参数是否等于 desc倒序 是则使用倒序,否则使用正序
example.orderBy(order).desc(); // 把sql 语句设置成倒序
}else{
example.orderBy(order).asc(); // 把 sql 设置成正序
}
int page = request.getParameter("page") == null ? 1 : Integer.valueOf(request.getParameter("page")); // 获取前台提交的URL参数 page 如果没有则设置为1
page = Math.max(1 , page); // 取两个数的最大值防止page 小于1
List<Diqu> list = service.selectPageExample(example , page , pagesize); // 获取当前页的行数
// 将列表写给界面使用
assign("totalCount" , request.getAttribute("totalCount"));
assign("list" , list);
assign("orderby" , order); // 把当前排序结果写进前台
assign("sort" , sort); // 把当前排序结果写进前台
return json(); // 将数据写给前端
}
public String getWhere()
{
_var = new LinkedHashMap(); // 重置数据
String where = " ";
// 以下也是一样的操作判断是否符合条件符合则写入sql 语句
if(!Request.get("diqumingcheng").equals("")) {
where += " AND diqumingcheng LIKE '%"+Request.get("diqumingcheng")+"%' ";
}
return where;
}
@RequestMapping("/diqu_add")
public String add()
{
_var = new LinkedHashMap(); // 重置数据
return json(); // 将数据写给前端
}
@RequestMapping("/diqu_updt")
public String updt()
{
_var = new LinkedHashMap(); // 重置数据
int id = Request.getInt("id");
// 获取行数据并赋值给前台jsp页面
Diqu mmm = service.find(id);
assign("mmm" , mmm);
assign("updtself" , 0);
return json(); // 将数据写给前端
}
/**
*
* @return
*/
@RequestMapping("/diquinsert")
public String insert()
{
_var = new LinkedHashMap(); // 重置数据
String tmp="";
Diqu post = new Diqu(); // 创建实体类
// 设置前台提交上来的数据到实体类中
post.setDiqumingcheng(Request.get("diqumingcheng"));
post.setAddtime(Info.getDateStr());
service.insert(post); // 插入数据
int charuid = post.getId().intValue();
if(isAjax()){
return jsonResult(post);
}
return showSuccess("保存成功" , Request.get("referer").equals("") ? request.getHeader("referer") : Request.get("referer"));
}
/**
*
* @return
*/
@RequestMapping("/diquupdate")
public String update()
{
_var = new LinkedHashMap(); // 重置数据
// 创建实体类
Diqu post = new Diqu();
// 将前台表单数据填充到实体类
if(!Request.get("diqumingcheng").equals(""))
post.setDiqumingcheng(Request.get("diqumingcheng"));
if(!Request.get("addtime").equals(""))
post.setAddtime(Request.get("addtime"));
post.setId(Request.getInt("id"));
service.update(post); // 更新数据
int charuid = post.getId().intValue();
if(isAjax()){
return jsonResult(post);
}
return showSuccess("保存成功" , Request.get("referer")); // 弹出保存成功,并跳转到前台提交的 referer 页面
}
/**
*
*/
@RequestMapping("/diqu_delete")
public String delete()
{
_var = new LinkedHashMap(); // 重置数据
if(!checkLogin()){
return showError("尚未登录");
}
int id = Request.getInt("id"); // 根据id 删除某行数据
HashMap map = Query.make("diqu").find(id);
service.delete(id);// 根据id 删除某行数据
return showSuccess("删除成功",request.getHeader("referer"));//弹出删除成功,并跳回上一页
}
}

@ -1,11 +0,0 @@
package com.spring.dao;
import com.base.MapperBase;
import com.spring.entity.Diqu;
import org.springframework.stereotype.Repository;
@Repository
public interface DiquMapper extends MapperBase<Diqu> {
}

@ -1,143 +0,0 @@
package util;
import javax.servlet.http.HttpServletRequest;
import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.net.URL;
import java.net.URLConnection;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
*
*/
public class DownloadRemoteImage {
private static final String ECODING = "UTF-8";
private static final String IMGURL_REG = "<img.*src=(.*?)[^>]*?>";
private static final String IMGSRC_REG = "(http|https):\"?(.*?)(\"|>|\\s+)";
/**
*
* @param content
* @return
*/
public static String run(String content)
{
HttpServletRequest request = Request.getRequest();
String path = "./upload";
DownloadRemoteImage image = new DownloadRemoteImage();
List<String> imgUrl = image.getImageUrl(content);
String text = image.getImageSrc(content , imgUrl , path);
//List<String> imgSrc = image.getImageSrc(imgUrl);
//image.Download(imgSrc,path);
return text;
}
/***
* ImageUrl
*
* @param HTML
* @return
*/
private List<String> getImageUrl(String HTML) {
Matcher matcher = Pattern.compile(IMGURL_REG).matcher(HTML);
List<String> listImgUrl = new ArrayList<String>();
while (matcher.find()) {
listImgUrl.add(matcher.group());
}
return listImgUrl;
}
/***
* ImageSrc
*
* @param listImageUrl
* @return
*/
private String getImageSrc(String content , List<String> listImageUrl , String path) {
//List<String> listImgSrc = new ArrayList<String>();
for (String image : listImageUrl) {
Matcher matcher = Pattern.compile(IMGSRC_REG).matcher(image);
while (matcher.find()) {
String src = matcher.group().substring(0, matcher.group().length() - 1);
String newsFile = download(src , path);
if(newsFile!= null){
content = content.replace(src , newsFile);
}
}
}
return content;
}
private static long downloadIndex = 1;
/**
* url
* @param url
* @return
*/
private String getFileName( String url )
{
//URL u = new URL(url);
String ext = "png";
String filename = new Date().getTime()+downloadIndex + "."+ext;
downloadIndex++;
return filename;
}
/**
*
* @param url
* @param path
* @return
*/
private String download(String url, String path) {
String result = "";
String imageName = "";
try {
if(url.indexOf("http")>=0){
imageName = getFileName( url ); //url.substring(url.lastIndexOf("/") + 1, url.length());
URL uri = new URL(url);
URLConnection conn = uri.openConnection();
conn.setRequestProperty("Referer" , url);
conn.setRequestProperty("User-Agent" , "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36");
conn.setDoInput(true);
InputStream in = conn.getInputStream();
HttpServletRequest request = Request.getRequest();
String paths = request.getSession().getServletContext().getRealPath(path);
FileOutputStream fo = new FileOutputStream(new File(paths,imageName));
byte[] buf = new byte[1024];
int length = 0;
System.out.println("开始下载:" + url);
while ((length = in.read(buf, 0, buf.length)) != -1) {
fo.write(buf, 0, length);
}
in.close();
fo.close();
System.out.println(path+"/"+imageName + "下载完成");
}
} catch (Exception e) {
System.out.println("下载失败");
return null;
}
return path+"/"+imageName;
}
}

@ -1,21 +0,0 @@
package com.base;
import tk.mybatis.mapper.entity.Example;
import java.util.List;
/**
* Service
* @param <E>
*/
public interface IServiceBase<E> {
public List<E> select();
public List<E> select(E y);
public E find(Object id);
public E findEntity(E id);
public List<E> selectPage(E obj, int page, int pageSize);
public List<E> selectPageExample(Example obj , int page , int pageSize);
public int delete(Object id);
public int insert(E y);
public int update(E y);
}

@ -1,52 +0,0 @@
package com.spring.controller;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import util.*;
import java.util.*;
import dao.CommDAO;
import net.jntoo.db.Query;
import com.alibaba.fastjson.*;
/**
*
*/
@Controller
public class IndexController extends BaseController{
// 首页
@RequestMapping(value = {"/" , "index"})
public String Index()
{
ArrayList<HashMap> bhtList = Query.make("lunbotu").order("id desc").limit(5).select();
assign("bhtList" , bhtList);
ArrayList<HashMap> jingdianxinxilist1 = Query.make("jingdianxinxi").limit(4).order("liulanliang desc").select();
assign("jingdianxinxilist1" , jingdianxinxilist1);
ArrayList<HashMap> difangmeishilist2 = Query.make("difangmeishi").limit(4).order("id desc").select();
assign("difangmeishilist2" , difangmeishilist2);
ArrayList<HashMap> lvyouxianlulist3 = Query.make("lvyouxianlu").limit(4).order("id desc").select();
assign("lvyouxianlulist3" , lvyouxianlulist3);
ArrayList<HashMap> xinwenxinxilist4 = Query.make("xinwenxinxi").limit(4).order("id desc").select();
assign("xinwenxinxilist4" , xinwenxinxilist4);
if(isAjax())
{
return json();
}
return "index";
}
}

@ -1,484 +0,0 @@
package util;
import net.jntoo.db.Query;
import com.alibaba.fastjson.*;
import javax.servlet.http.HttpServletRequest;
import java.io.UnsupportedEncodingException;
import java.lang.reflect.Method;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
*
*/
public class Info {
/**
*
* @param name
* @param length
* @return
*/
public static String dx(String name, int length) {
HashMap row = Query.make("dx").where("leibie" , "name").find();
if (row == null || row.get("content") == null || row.isEmpty()) {
return "";
} else {
return subStr((String) row.get("content"), length);
}
}
/**
*
* @param password
* @return
*/
public static String formatPassword(String password)
{
return password;
}
/**
* JSON
* @param source
* @return
*/
public static String jsonEncode(Object source)
{
return JSON.toJSONString(source);
}
public static JSONObject jsonDecode(Object source)
{
if(source == null){
return JSON.parseObject("{}");
}
return JSON.parseObject( String.valueOf( source ));
}
public static JSONArray jsonDecodeArray( Object source )
{
if(source == null){
return JSON.parseArray("[]");
}
return JSON.parseArray( String.valueOf( source ));
}
public static List objectSplit(String exp , Object str)
{
List arr = new ArrayList();
if(str == null)
{
return arr;
}
String s = String.valueOf(str);
String[] sp = s.split(exp);
return Arrays.asList(sp);
}
/**
* id
* @param table
* @param pid
* @param value
* @return
*/
public static String getAllChild( String table , String pid , Object value)
{
List templists = Query.make(table).select();
return StringUtil.join(",",getAllChild( table , pid , value , templists));
}
public static List getAllChild( String table , String pid , Object value , List templists)
{
List $ret = null;
List<HashMap> lists = templists;
List $result = new ArrayList();
String parentid = String.valueOf(value);
$result.add(parentid);
for (HashMap child : lists){
if(child.get(pid).equals(parentid))
{
$ret = getAllChild( table , pid , child.get("id") , templists );
if($ret.size() > 0){
$result.addAll($ret);
}
}
}
return $result;
}
public static String postion(String table , String pid , String name , String value)
{
List items = new ArrayList();
String parentid = value;
do {
HashMap mp = dao.Query.make(table).find(parentid);
if(mp.isEmpty()){
break;
}
items.add(mp.get(name));
parentid = mp.get(pid).toString();
}while ( !parentid.equals("") && !parentid.equals("0") );
Collections.reverse(items);
return StringUtil.join(" ",items);
}
public static String getTreeOption(String table , String pid , String name , Object value)
{
return postion(table , pid , name , String.valueOf(value));
}
/**
*
* @param dateA
* @param dateB
* @return
*/
public static int getBetweenDayNumber(String dateA, String dateB) {
long dayNumber = 0;
//1小时=60分钟=3600秒=3600000
long mins = 60L * 1000L;
//long day= 24L * 60L * 60L * 1000L;计算天数之差
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm");
try {
Date d1 = df.parse(dateA);
Date d2 = df.parse(dateB);
dayNumber = (d2.getTime() - d1.getTime()) / mins;
} catch (Exception e) {
e.printStackTrace();
}
return (int) dayNumber;
}
/**
* id
* @return
*/
public synchronized static String getID() {
Random random = new Random();
StringBuffer ret = new StringBuffer(20);
Date date = new Date();
SimpleDateFormat format = new SimpleDateFormat("MMddHHmmss", Locale.CHINA);
ret.append(format.format(date));
String rand = String.valueOf(Math.abs(random.nextInt()));
//ret.append(getDateStr());
ret.append(rand.substring(0, 4));
return ret.toString();
}
/**
* html
* @param source
* @param length
* @return
*/
public synchronized static String subStr(Object source, int length) {
return subStr(source , length , "...");
}
/**
* html
* @param source
* @param length
* @return
*/
public synchronized static String subStr(Object source, int length , String append) {
if(source == null) return "";
String str = delHTMLTag(source.toString());
if (str.length() > length) {
str = ( str.substring(0, length)) + append;
}
return str;
}
/**
*
* @return
*/
public static String getDateStr() {
String dateString = "";
try {//yyyyMMddHHmmss
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date currentTime_1 = new Date();
dateString = formatter.format(currentTime_1);
} catch (Exception e) {
}
return dateString;
}
/**
* utf8
* @param str
* @return
*/
public static String getUTFStr(String str) {
if (str == null) {
return "";
}
try {
str = new String(str.getBytes("ISO-8859-1"), "utf-8");
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return str;
}
/**
* html
* @param htmlStr
* @return
*/
public static String delHTMLTag(String htmlStr) {
String regEx_script = "<script[^>]*?>[\\s\\S]*?<\\/script>"; //定义script的正则表达式
String regEx_style = "<style[^>]*?>[\\s\\S]*?<\\/style>"; //定义style的正则表达式
String regEx_html = "<[^>]+>"; //定义HTML标签的正则表达式
Pattern p_script = Pattern.compile(regEx_script, Pattern.CASE_INSENSITIVE);
Matcher m_script = p_script.matcher(htmlStr);
htmlStr = m_script.replaceAll(""); //过滤script标签
Pattern p_style = Pattern.compile(regEx_style, Pattern.CASE_INSENSITIVE);
Matcher m_style = p_style.matcher(htmlStr);
htmlStr = m_style.replaceAll(""); //过滤style标签
Pattern p_html = Pattern.compile(regEx_html, Pattern.CASE_INSENSITIVE);
Matcher m_html = p_html.matcher(htmlStr);
htmlStr = m_html.replaceAll(""); //过滤html标签
return htmlStr.trim(); //返回文本字符串
}
/**
*
* @param date
* @param day
* @return
*/
public static String getDay(String date, int day) {
String b = date.substring(0, 10);
String c = b.substring(0, 4);
String d = b.substring(5, 7);
String f = b.substring(8, 10);
String aa = c + "/" + d + "/" + f;
String a = "";
DateFormat dateFormat = DateFormat.getDateInstance(DateFormat.MEDIUM);
GregorianCalendar grc = new GregorianCalendar();
grc.setTime(new Date(aa));
grc.add(GregorianCalendar.DAY_OF_MONTH, day);
String resu = dateFormat.format(grc.getTime());
String t[] = resu.split("-");
String sesuu = "";
for (int i = 0; i < t.length; i++) {
if (t[i].length() == 1) {
t[i] = "0" + t[i];
}
sesuu += t[i] + "-";
}
return sesuu.substring(0, 10);
}
/**
*
*/
public static long compare_datetime(String DATE1, String DATE2) {
DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
try {
Date dt1 = df.parse(DATE1);
Date dt2 = df.parse(DATE2);
return dt1.getTime()-dt2.getTime();
} catch (Exception exception) {
exception.printStackTrace();
}
return -1;
}
/**
*
* @param source
* @return
*/
public static String html(Object source) {
return html( source.toString());
}
/**
*
* @param source
* @return
*/
public static String html(String source) {
if (source == null) {
return "";
}
String html = "";
StringBuffer buffer = new StringBuffer();
for (int i = 0; i < source.length(); i++) {
char c = source.charAt(i);
switch (c) {
case '<':
buffer.append("&lt;");
break;
case '>':
buffer.append("&gt;");
break;
case '&':
buffer.append("&amp;");
break;
case '"':
buffer.append("&quot;");
break;
default:
buffer.append(c);
}
}
html = buffer.toString();
return html;
}
/**
* jstl
* @param jstlStr
* @return
* @throws Exception
*/
public static String jstl(String jstlStr) throws Exception
{
String[] strings=jstlStr.split("\\." );
HttpServletRequest http = Request.getRequest();
Object object = http.getAttribute(strings[0] );
return makeTableParam(object , strings[1]);
}
public static String jstltable(Object obj , String param) throws Exception
{
return makeTableParam(obj , param);
}
public static String address(String add)
{
if(add == null || add.length() == 0){
return "";
}
JSONObject json = JSONObject.parseObject(add);
if(json != null && !json.isEmpty()){
return json.getString("address");
}
return "";
}
/**
* images
* @param str
* @return
*/
public static String images(String str)
{
if(str.indexOf(",")>=0){
String[] li = str.split(",");
return li[0];
}
return str;
}
/**
* jstl
* @param obj
* @param param
* @return
* @throws Exception
*/
public static String makeTableParam(Object obj, String param) throws Exception
{
if(obj == null){
return "";
}
if(obj instanceof Map)
{
Object ret = ((Map) obj).get(param);
if(ret == null){
return "";
}
return ret.toString();
}else{
Class classType=obj.getClass();
String firstLetter=param.substring(0,1).toUpperCase()+ param.substring(1);
String getMethodName = "get"+firstLetter;
Method getMethod=classType.getMethod(getMethodName,new Class[]{});
Object value=getMethod.invoke(obj,new Object[]{});
return value.toString();
}
}
/**
* url
* @param name
* @return
*/
public static String get(String name) {
String value = Request.getRequest().getParameter(name);
return value == null ? "" : value;
}
/**
*
* @param format
* @return
*/
public static String date(String format) {
return date(format, null);
}
/**
*
* @param format
* @param time
* @return
*/
public static String date(String format, long time) {
return date(format, new Date(time * 1000));
}
/**
*
* @return
*/
public static long time() {
return Long.valueOf(new Date().getTime() / 1000).longValue();
}
/**
*
* @param format
* @param time
* @return
*/
public static String date(String format, Date time) {
if (time == null) {
time = new Date();
}
SimpleDateFormat formatter = new SimpleDateFormat(format);
return formatter.format(time);
}
}

@ -1,131 +0,0 @@
package com.spring.entity;
import javax.persistence.Column;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
import java.io.Serializable;
import java.util.Date;
import net.jntoo.db.Query;
@Table(name = "jingdianxinxi")
public class Jingdianxinxi implements Serializable {
@GeneratedValue(generator = "JDBC") // 自增的主键映射
@Id
@Column(name = "id",insertable=false)
private Integer id;
@Column(name = "jingdianbianhao")
private String jingdianbianhao;
@Column(name = "jingdianmingcheng")
private String jingdianmingcheng;
@Column(name = "suoshudiqu")
private String suoshudiqu;
@Column(name = "tupian")
private String tupian;
@Column(name = "kaifangshijian")
private String kaifangshijian;
@Column(name = "fujinmeishi")
private String fujinmeishi;
@Column(name = "dizhi")
private String dizhi;
@Column(name = "piaojia")
private Double piaojia;
@Column(name = "liulanliang")
private Integer liulanliang;
@Column(name = "miaoshu")
private String miaoshu;
@Column(name = "addtime")
private String addtime;
private static final long serialVersionUID = 1L;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getJingdianbianhao() {
return jingdianbianhao;
}
public void setJingdianbianhao(String jingdianbianhao) {
this.jingdianbianhao = jingdianbianhao == null ? "" : jingdianbianhao.trim();
}
public String getJingdianmingcheng() {
return jingdianmingcheng;
}
public void setJingdianmingcheng(String jingdianmingcheng) {
this.jingdianmingcheng = jingdianmingcheng == null ? "" : jingdianmingcheng.trim();
}
public String getSuoshudiqu() {
return suoshudiqu;
}
public void setSuoshudiqu(String suoshudiqu) {
this.suoshudiqu = suoshudiqu == null ? "" : suoshudiqu.trim();
}
public String getTupian() {
return tupian;
}
public void setTupian(String tupian) {
this.tupian = tupian == null ? "" : tupian.trim();
}
public String getKaifangshijian() {
return kaifangshijian;
}
public void setKaifangshijian(String kaifangshijian) {
this.kaifangshijian = kaifangshijian == null ? "" : kaifangshijian.trim();
}
public String getFujinmeishi() {
return fujinmeishi;
}
public void setFujinmeishi(String fujinmeishi) {
this.fujinmeishi = fujinmeishi == null ? "" : fujinmeishi.trim();
}
public String getDizhi() {
return dizhi;
}
public void setDizhi(String dizhi) {
this.dizhi = dizhi == null ? "" : dizhi.trim();
}
public Double getPiaojia() {
return piaojia;
}
public void setPiaojia(Double piaojia) {
this.piaojia = piaojia == null ? 0.0f : piaojia;
}
public Integer getLiulanliang() {
return liulanliang;
}
public void setLiulanliang(Integer liulanliang) {
this.liulanliang = liulanliang == null ? 0 : liulanliang;
}
public String getMiaoshu() {
return miaoshu;
}
public void setMiaoshu(String miaoshu) {
this.miaoshu = miaoshu == null ? "" : miaoshu.trim();
}
public String getAddtime() {
return addtime;
}
public void setAddtime(String addtime) {
this.addtime = addtime == null ? "" : addtime.trim();
}
}

@ -1,285 +0,0 @@
package com.spring.controller;
import com.spring.dao.JingdianxinxiMapper;
import com.spring.entity.Jingdianxinxi;
import com.spring.service.JingdianxinxiService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import tk.mybatis.mapper.entity.Example;
import util.Request;
import util.Info;
import dao.Query;
import java.util.*;
import dao.CommDAO;
/**
* */
@Controller
public class JingdianxinxiController extends BaseController
{
@Autowired
private JingdianxinxiMapper dao;
@Autowired
private JingdianxinxiService service;
/**
*
*
*/
@RequestMapping("/jingdianxinxi_list")
public String list()
{
// 检测是否有登录,没登录则跳转到登录页面
if(!checkLogin()){
return showError("尚未登录" , "./login.do");
}
String order = Request.get("order" , "id"); // 获取前台提交的URL参数 order 如果没有则设置为id
String sort = Request.get("sort" , "desc"); // 获取前台提交的URL参数 sort 如果没有则设置为desc
int pagesize = Request.getInt("pagesize" , 12); // 获取前台一页多少行数据
Example example = new Example(Jingdianxinxi.class); // 创建一个扩展搜索类
Example.Criteria criteria = example.createCriteria(); // 创建一个扩展搜索条件类
String where = " 1=1 "; // 创建初始条件为1=1
where += getWhere(); // 从方法中获取url 上的参数,并写成 sql条件语句
criteria.andCondition(where); // 将条件写进上面的扩展条件类中
if(sort.equals("desc")){ // 判断前台提交的sort 参数是否等于 desc倒序 是则使用倒序,否则使用正序
example.orderBy(order).desc(); // 把sql 语句设置成倒序
}else{
example.orderBy(order).asc(); // 把 sql 设置成正序
}
int page = request.getParameter("page") == null ? 1 : Integer.valueOf(request.getParameter("page")); // 获取前台提交的URL参数 page 如果没有则设置为1
page = Math.max(1 , page); // 取两个数的最大值防止page 小于1
List<Jingdianxinxi> list = service.selectPageExample(example , page , pagesize); // 获取当前页的行数
assign("diquList" , new CommDAO().select("SELECT * FROM diqu ORDER BY id desc"));
// 将列表写给界面使用
assign("totalCount" , request.getAttribute("totalCount"));
assign("list" , list);
assign("orderby" , order); // 把当前排序结果写进前台
assign("sort" , sort); // 把当前排序结果写进前台
return json(); // 将数据写给前端
}
public String getWhere()
{
_var = new LinkedHashMap(); // 重置数据
String where = " ";
// 以下也是一样的操作判断是否符合条件符合则写入sql 语句
if(!Request.get("jingdianbianhao").equals("")) {
where += " AND jingdianbianhao LIKE '%"+Request.get("jingdianbianhao")+"%' ";
}
if(!Request.get("jingdianmingcheng").equals("")) {
where += " AND jingdianmingcheng LIKE '%"+Request.get("jingdianmingcheng")+"%' ";
}
if(!Request.get("suoshudiqu").equals("")) {
where += " AND suoshudiqu ='"+Request.get("suoshudiqu")+"' ";
}
return where;
}
/**
*
*
*/
@RequestMapping("/jingdianxinxilist")
public String index()
{
String order = Request.get("order" , "id");
String sort = Request.get("sort" , "desc");
Example example = new Example(Jingdianxinxi.class);
Example.Criteria criteria = example.createCriteria();
String where = " 1=1 ";
where += getWhere();
criteria.andCondition(where);
if(sort.equals("desc")){
example.orderBy(order).desc();
}else{
example.orderBy(order).asc();
}
int page = request.getParameter("page") == null ? 1 : Integer.valueOf(request.getParameter("page"));
page = Math.max(1 , page);
List<Jingdianxinxi> list = service.selectPageExample(example , page , 12);
assign("mapdiqu4" , new CommDAO().select("SELECT id,diqumingcheng FROM diqu")); assign("totalCount" , request.getAttribute("totalCount"));
assign("list" , list);
assign("where" , where);
assign("orderby" , order);
assign("sort" , sort);
return json();
}
@RequestMapping("/jingdianxinxi_add")
public String add()
{
_var = new LinkedHashMap(); // 重置数据
assign("diquList" , new CommDAO().select("SELECT * FROM diqu ORDER BY id desc"));
assign("difangmeishiList" , new CommDAO().select("SELECT * FROM difangmeishi ORDER BY id desc"));
return json(); // 将数据写给前端
}
@RequestMapping("/jingdianxinxi_updt")
public String updt()
{
_var = new LinkedHashMap(); // 重置数据
int id = Request.getInt("id");
// 获取行数据并赋值给前台jsp页面
Jingdianxinxi mmm = service.find(id);
assign("mmm" , mmm);
assign("updtself" , 0);
assign("diquList" , new CommDAO().select("SELECT * FROM diqu ORDER BY id desc"));
assign("difangmeishiList" , new CommDAO().select("SELECT * FROM difangmeishi ORDER BY id desc"));
return json(); // 将数据写给前端
}
/**
*
* @return
*/
@RequestMapping("/jingdianxinxiinsert")
public String insert()
{
_var = new LinkedHashMap(); // 重置数据
String tmp="";
Jingdianxinxi post = new Jingdianxinxi(); // 创建实体类
// 设置前台提交上来的数据到实体类中
post.setJingdianbianhao(Request.get("jingdianbianhao"));
post.setJingdianmingcheng(Request.get("jingdianmingcheng"));
post.setSuoshudiqu(Request.get("suoshudiqu"));
post.setTupian(Request.get("tupian"));
post.setKaifangshijian(Request.get("kaifangshijian"));
post.setFujinmeishi(Request.get("fujinmeishi"));
post.setDizhi(Request.get("dizhi"));
post.setPiaojia(Request.getDouble("piaojia"));
post.setLiulanliang(Request.getInt("liulanliang"));
post.setMiaoshu(util.DownloadRemoteImage.run(Request.get("miaoshu")));
post.setAddtime(Info.getDateStr());
service.insert(post); // 插入数据
int charuid = post.getId().intValue();
if(isAjax()){
return jsonResult(post);
}
return showSuccess("保存成功" , Request.get("referer").equals("") ? request.getHeader("referer") : Request.get("referer"));
}
/**
*
* @return
*/
@RequestMapping("/jingdianxinxiupdate")
public String update()
{
_var = new LinkedHashMap(); // 重置数据
// 创建实体类
Jingdianxinxi post = new Jingdianxinxi();
// 将前台表单数据填充到实体类
if(!Request.get("jingdianbianhao").equals(""))
post.setJingdianbianhao(Request.get("jingdianbianhao"));
if(!Request.get("jingdianmingcheng").equals(""))
post.setJingdianmingcheng(Request.get("jingdianmingcheng"));
if(!Request.get("suoshudiqu").equals(""))
post.setSuoshudiqu(Request.get("suoshudiqu"));
if(!Request.get("tupian").equals(""))
post.setTupian(Request.get("tupian"));
if(!Request.get("kaifangshijian").equals(""))
post.setKaifangshijian(Request.get("kaifangshijian"));
if(!Request.get("fujinmeishi").equals(""))
post.setFujinmeishi(Request.get("fujinmeishi"));
if(!Request.get("dizhi").equals(""))
post.setDizhi(Request.get("dizhi"));
if(!Request.get("piaojia").equals(""))
post.setPiaojia(Request.getDouble("piaojia"));
if(!Request.get("liulanliang").equals(""))
post.setLiulanliang(Request.getInt("liulanliang"));
if(!Request.get("miaoshu").equals(""))
post.setMiaoshu(util.DownloadRemoteImage.run(Request.get("miaoshu")));
if(!Request.get("addtime").equals(""))
post.setAddtime(Request.get("addtime"));
post.setId(Request.getInt("id"));
service.update(post); // 更新数据
int charuid = post.getId().intValue();
if(isAjax()){
return jsonResult(post);
}
return showSuccess("保存成功" , Request.get("referer")); // 弹出保存成功,并跳转到前台提交的 referer 页面
}
/**
*
*/
@RequestMapping("/jingdianxinxi_detail")
public String detail()
{
_var = new LinkedHashMap(); // 重置数据
int id = Request.getInt("id");
Jingdianxinxi map = service.find(id); // 根据前台url 参数中的id获取行数据
assign("map" , map); // 把数据写到前台
return json(); // 将数据写给前端
}
/**
*
*/
@RequestMapping("/jingdianxinxidetail")
public String detailweb()
{
_var = new LinkedHashMap(); // 重置数据
int id = Request.getInt("id");
Jingdianxinxi map = service.find(id);
Query.execute("UPDATE jingdianxinxi SET liulanliang=liulanliang+1 WHERE id="+request.getParameter("id")+"");
if(!checkLogin()){
assign("isCollect" , false);
}else{
assign("isCollect" , Query.make("shoucangjilu").where("username",session.getAttribute("username")).where("biao" , "jingdianxinxi").where("xwid",id).count()>0);
}
assign("map" , map);
return json(); // 将数据写给前端
}
/**
*
*/
@RequestMapping("/jingdianxinxi_delete")
public String delete()
{
_var = new LinkedHashMap(); // 重置数据
if(!checkLogin()){
return showError("尚未登录");
}
int id = Request.getInt("id"); // 根据id 删除某行数据
HashMap map = Query.make("jingdianxinxi").find(id);
service.delete(id);// 根据id 删除某行数据
return showSuccess("删除成功",request.getHeader("referer"));//弹出删除成功,并跳回上一页
}
}

@ -1,11 +0,0 @@
package com.spring.dao;
import com.base.MapperBase;
import com.spring.entity.Jingdianxinxi;
import org.springframework.stereotype.Repository;
@Repository
public interface JingdianxinxiMapper extends MapperBase<Jingdianxinxi> {
}

@ -1,55 +0,0 @@
package com.spring.util;
/**
* Json
*/
public class JsonResult {
private Integer code;
private String msg;
private Object data;
public JsonResult(Integer code , String msg , Object data)
{
this.code = code;
this.msg = msg;
this.data = data;
}
public JsonResult(Object data)
{
this.data = data;
setCode(0);
setMsg("");
}
public JsonResult(String msg)
{
this.msg = msg;
setData(null);
setCode(1);
}
public Integer getCode() {
return code;
}
public void setCode(Integer code) {
this.code = code;
}
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
public Object getData() {
return data;
}
public void setData(Object data) {
this.data = data;
}
}

@ -1,86 +0,0 @@
package com.spring.entity;
import javax.persistence.Column;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
import java.io.Serializable;
import java.util.Date;
import net.jntoo.db.Query;
@Table(name = "liuyanban")
public class Liuyanban implements Serializable {
@GeneratedValue(generator = "JDBC") // 自增的主键映射
@Id
@Column(name = "id",insertable=false)
private Integer id;
@Column(name = "xingming")
private String xingming;
@Column(name = "lianxidianhua")
private String lianxidianhua;
@Column(name = "liuyanneirong")
private String liuyanneirong;
@Column(name = "liuyanren")
private String liuyanren;
@Column(name = "huifuneirong")
private String huifuneirong;
@Column(name = "addtime")
private String addtime;
private static final long serialVersionUID = 1L;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getXingming() {
return xingming;
}
public void setXingming(String xingming) {
this.xingming = xingming == null ? "" : xingming.trim();
}
public String getLianxidianhua() {
return lianxidianhua;
}
public void setLianxidianhua(String lianxidianhua) {
this.lianxidianhua = lianxidianhua == null ? "" : lianxidianhua.trim();
}
public String getLiuyanneirong() {
return liuyanneirong;
}
public void setLiuyanneirong(String liuyanneirong) {
this.liuyanneirong = liuyanneirong == null ? "" : liuyanneirong.trim();
}
public String getLiuyanren() {
return liuyanren;
}
public void setLiuyanren(String liuyanren) {
this.liuyanren = liuyanren == null ? "" : liuyanren.trim();
}
public String getHuifuneirong() {
return huifuneirong;
}
public void setHuifuneirong(String huifuneirong) {
this.huifuneirong = huifuneirong == null ? "" : huifuneirong.trim();
}
public String getAddtime() {
return addtime;
}
public void setAddtime(String addtime) {
this.addtime = addtime == null ? "" : addtime.trim();
}
}

@ -1,238 +0,0 @@
package com.spring.controller;
import com.spring.dao.LiuyanbanMapper;
import com.spring.entity.Liuyanban;
import com.spring.service.LiuyanbanService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import tk.mybatis.mapper.entity.Example;
import util.Request;
import util.Info;
import dao.Query;
import java.util.*;
import dao.CommDAO;
/**
* */
@Controller
public class LiuyanbanController extends BaseController
{
@Autowired
private LiuyanbanMapper dao;
@Autowired
private LiuyanbanService service;
/**
*
*
*/
@RequestMapping("/liuyanban_list")
public String list()
{
// 检测是否有登录,没登录则跳转到登录页面
if(!checkLogin()){
return showError("尚未登录" , "./login.do");
}
String order = Request.get("order" , "id"); // 获取前台提交的URL参数 order 如果没有则设置为id
String sort = Request.get("sort" , "desc"); // 获取前台提交的URL参数 sort 如果没有则设置为desc
int pagesize = Request.getInt("pagesize" , 12); // 获取前台一页多少行数据
Example example = new Example(Liuyanban.class); // 创建一个扩展搜索类
Example.Criteria criteria = example.createCriteria(); // 创建一个扩展搜索条件类
String where = " 1=1 "; // 创建初始条件为1=1
where += getWhere(); // 从方法中获取url 上的参数,并写成 sql条件语句
criteria.andCondition(where); // 将条件写进上面的扩展条件类中
if(sort.equals("desc")){ // 判断前台提交的sort 参数是否等于 desc倒序 是则使用倒序,否则使用正序
example.orderBy(order).desc(); // 把sql 语句设置成倒序
}else{
example.orderBy(order).asc(); // 把 sql 设置成正序
}
int page = request.getParameter("page") == null ? 1 : Integer.valueOf(request.getParameter("page")); // 获取前台提交的URL参数 page 如果没有则设置为1
page = Math.max(1 , page); // 取两个数的最大值防止page 小于1
List<Liuyanban> list = service.selectPageExample(example , page , pagesize); // 获取当前页的行数
// 将列表写给界面使用
assign("totalCount" , request.getAttribute("totalCount"));
assign("list" , list);
assign("orderby" , order); // 把当前排序结果写进前台
assign("sort" , sort); // 把当前排序结果写进前台
return json(); // 将数据写给前端
}
public String getWhere()
{
_var = new LinkedHashMap(); // 重置数据
String where = " ";
// 以下也是一样的操作判断是否符合条件符合则写入sql 语句
return where;
}
/**
*
*/
@RequestMapping("/liuyanban_list_liuyanren")
public String listliuyanren()
{
// 检测是否有登录,没登录则跳转到登录页面
if(!checkLogin()){
return showError("尚未登录" , "./login.do");
}
String order = Request.get("order" , "id"); // 获取前台提交的URL参数 order 如果没有则设置为id
String sort = Request.get("sort" , "desc"); // 获取前台提交的URL参数 sort 如果没有则设置为desc
int pagesize = Request.getInt("pagesize" , 12); // 获取前台一页多少行数据
Example example = new Example(Liuyanban.class); // 创建一个扩展搜索类
Example.Criteria criteria = example.createCriteria(); // 创建一个扩展搜索条件类
// 初始化一个条件,条件为:留言人=当前登录用户
String where = " liuyanren='"+request.getSession().getAttribute("username")+"' ";
where += getWhere();
criteria.andCondition(where); // 将条件写入
if(sort.equals("desc")){ // 注释同list
example.orderBy(order).desc(); // 注释同list
}else{
example.orderBy(order).asc(); // 注释同list
}
int page = request.getParameter("page") == null ? 1 : Integer.valueOf(request.getParameter("page")); // 注释同list
page = Math.max(1 , page); // 注释同list
List<Liuyanban> list = service.selectPageExample(example , page , pagesize);
assign("totalCount" , request.getAttribute("totalCount"));
assign("list" , list);
assign("orderby" , order);
assign("sort" , sort);
return json(); // 将数据写给前端
}
@RequestMapping("/liuyanban_add")
public String add()
{
_var = new LinkedHashMap(); // 重置数据
return json(); // 将数据写给前端
}
@RequestMapping("/liuyanban_updt")
public String updt()
{
_var = new LinkedHashMap(); // 重置数据
int id = Request.getInt("id");
// 获取行数据并赋值给前台jsp页面
Liuyanban mmm = service.find(id);
assign("mmm" , mmm);
assign("updtself" , 0);
return json(); // 将数据写给前端
}
/**
*
* @return
*/
@RequestMapping("/liuyanbaninsert")
public String insert()
{
_var = new LinkedHashMap(); // 重置数据
String tmp="";
Liuyanban post = new Liuyanban(); // 创建实体类
// 设置前台提交上来的数据到实体类中
post.setXingming(Request.get("xingming"));
post.setLianxidianhua(Request.get("lianxidianhua"));
post.setLiuyanneirong(Request.get("liuyanneirong"));
post.setLiuyanren(Request.get("liuyanren"));
post.setHuifuneirong(Request.get("huifuneirong"));
post.setAddtime(Info.getDateStr());
service.insert(post); // 插入数据
int charuid = post.getId().intValue();
if(isAjax()){
return jsonResult(post);
}
return showSuccess("保存成功" , Request.get("referer").equals("") ? request.getHeader("referer") : Request.get("referer"));
}
/**
*
* @return
*/
@RequestMapping("/liuyanbanupdate")
public String update()
{
_var = new LinkedHashMap(); // 重置数据
// 创建实体类
Liuyanban post = new Liuyanban();
// 将前台表单数据填充到实体类
if(!Request.get("xingming").equals(""))
post.setXingming(Request.get("xingming"));
if(!Request.get("lianxidianhua").equals(""))
post.setLianxidianhua(Request.get("lianxidianhua"));
if(!Request.get("liuyanneirong").equals(""))
post.setLiuyanneirong(Request.get("liuyanneirong"));
if(!Request.get("liuyanren").equals(""))
post.setLiuyanren(Request.get("liuyanren"));
if(!Request.get("huifuneirong").equals(""))
post.setHuifuneirong(Request.get("huifuneirong"));
if(!Request.get("addtime").equals(""))
post.setAddtime(Request.get("addtime"));
post.setId(Request.getInt("id"));
service.update(post); // 更新数据
int charuid = post.getId().intValue();
if(isAjax()){
return jsonResult(post);
}
return showSuccess("保存成功" , Request.get("referer")); // 弹出保存成功,并跳转到前台提交的 referer 页面
}
/**
*
*/
@RequestMapping("/liuyanban_detail")
public String detail()
{
_var = new LinkedHashMap(); // 重置数据
int id = Request.getInt("id");
Liuyanban map = service.find(id); // 根据前台url 参数中的id获取行数据
assign("map" , map); // 把数据写到前台
return json(); // 将数据写给前端
}
/**
*
*/
@RequestMapping("/liuyanban_delete")
public String delete()
{
_var = new LinkedHashMap(); // 重置数据
if(!checkLogin()){
return showError("尚未登录");
}
int id = Request.getInt("id"); // 根据id 删除某行数据
HashMap map = Query.make("liuyanban").find(id);
service.delete(id);// 根据id 删除某行数据
return showSuccess("删除成功",request.getHeader("referer"));//弹出删除成功,并跳回上一页
}
}

@ -1,11 +0,0 @@
package com.spring.dao;
import com.base.MapperBase;
import com.spring.entity.Liuyanban;
import org.springframework.stereotype.Repository;
@Repository
public interface LiuyanbanMapper extends MapperBase<Liuyanban> {
}

@ -1,68 +0,0 @@
package com.spring.entity;
import javax.persistence.Column;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
import java.io.Serializable;
import java.util.Date;
import net.jntoo.db.Query;
@Table(name = "lunbotu")
public class Lunbotu implements Serializable {
@GeneratedValue(generator = "JDBC") // 自增的主键映射
@Id
@Column(name = "id",insertable=false)
private Integer id;
@Column(name = "title")
private String title;
@Column(name = "image")
private String image;
@Column(name = "url")
private String url;
@Column(name = "addtime")
private String addtime;
private static final long serialVersionUID = 1L;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title == null ? "" : title.trim();
}
public String getImage() {
return image;
}
public void setImage(String image) {
this.image = image == null ? "" : image.trim();
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url == null ? "" : url.trim();
}
public String getAddtime() {
return addtime;
}
public void setAddtime(String addtime) {
this.addtime = addtime == null ? "" : addtime.trim();
}
}

@ -1,183 +0,0 @@
package com.spring.controller;
import com.spring.dao.LunbotuMapper;
import com.spring.entity.Lunbotu;
import com.spring.service.LunbotuService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import tk.mybatis.mapper.entity.Example;
import util.Request;
import util.Info;
import dao.Query;
import java.util.*;
import dao.CommDAO;
/**
* */
@Controller
public class LunbotuController extends BaseController
{
@Autowired
private LunbotuMapper dao;
@Autowired
private LunbotuService service;
/**
*
*
*/
@RequestMapping("/lunbotu_list")
public String list()
{
// 检测是否有登录,没登录则跳转到登录页面
if(!checkLogin()){
return showError("尚未登录" , "./login.do");
}
String order = Request.get("order" , "id"); // 获取前台提交的URL参数 order 如果没有则设置为id
String sort = Request.get("sort" , "desc"); // 获取前台提交的URL参数 sort 如果没有则设置为desc
int pagesize = Request.getInt("pagesize" , 12); // 获取前台一页多少行数据
Example example = new Example(Lunbotu.class); // 创建一个扩展搜索类
Example.Criteria criteria = example.createCriteria(); // 创建一个扩展搜索条件类
String where = " 1=1 "; // 创建初始条件为1=1
where += getWhere(); // 从方法中获取url 上的参数,并写成 sql条件语句
criteria.andCondition(where); // 将条件写进上面的扩展条件类中
if(sort.equals("desc")){ // 判断前台提交的sort 参数是否等于 desc倒序 是则使用倒序,否则使用正序
example.orderBy(order).desc(); // 把sql 语句设置成倒序
}else{
example.orderBy(order).asc(); // 把 sql 设置成正序
}
int page = request.getParameter("page") == null ? 1 : Integer.valueOf(request.getParameter("page")); // 获取前台提交的URL参数 page 如果没有则设置为1
page = Math.max(1 , page); // 取两个数的最大值防止page 小于1
List<Lunbotu> list = service.selectPageExample(example , page , pagesize); // 获取当前页的行数
// 将列表写给界面使用
assign("totalCount" , request.getAttribute("totalCount"));
assign("list" , list);
assign("orderby" , order); // 把当前排序结果写进前台
assign("sort" , sort); // 把当前排序结果写进前台
return json(); // 将数据写给前端
}
public String getWhere()
{
_var = new LinkedHashMap(); // 重置数据
String where = " ";
// 以下也是一样的操作判断是否符合条件符合则写入sql 语句
if(!Request.get("title").equals("")) {
where += " AND title LIKE '%"+Request.get("title")+"%' ";
}
return where;
}
@RequestMapping("/lunbotu_add")
public String add()
{
_var = new LinkedHashMap(); // 重置数据
return json(); // 将数据写给前端
}
@RequestMapping("/lunbotu_updt")
public String updt()
{
_var = new LinkedHashMap(); // 重置数据
int id = Request.getInt("id");
// 获取行数据并赋值给前台jsp页面
Lunbotu mmm = service.find(id);
assign("mmm" , mmm);
assign("updtself" , 0);
return json(); // 将数据写给前端
}
/**
*
* @return
*/
@RequestMapping("/lunbotuinsert")
public String insert()
{
_var = new LinkedHashMap(); // 重置数据
String tmp="";
Lunbotu post = new Lunbotu(); // 创建实体类
// 设置前台提交上来的数据到实体类中
post.setTitle(Request.get("title"));
post.setImage(Request.get("image"));
post.setUrl(Request.get("url"));
post.setAddtime(Info.getDateStr());
service.insert(post); // 插入数据
int charuid = post.getId().intValue();
if(isAjax()){
return jsonResult(post);
}
return showSuccess("保存成功" , Request.get("referer").equals("") ? request.getHeader("referer") : Request.get("referer"));
}
/**
*
* @return
*/
@RequestMapping("/lunbotuupdate")
public String update()
{
_var = new LinkedHashMap(); // 重置数据
// 创建实体类
Lunbotu post = new Lunbotu();
// 将前台表单数据填充到实体类
if(!Request.get("title").equals(""))
post.setTitle(Request.get("title"));
if(!Request.get("image").equals(""))
post.setImage(Request.get("image"));
if(!Request.get("url").equals(""))
post.setUrl(Request.get("url"));
if(!Request.get("addtime").equals(""))
post.setAddtime(Request.get("addtime"));
post.setId(Request.getInt("id"));
service.update(post); // 更新数据
int charuid = post.getId().intValue();
if(isAjax()){
return jsonResult(post);
}
return showSuccess("保存成功" , Request.get("referer")); // 弹出保存成功,并跳转到前台提交的 referer 页面
}
/**
*
*/
@RequestMapping("/lunbotu_delete")
public String delete()
{
_var = new LinkedHashMap(); // 重置数据
if(!checkLogin()){
return showError("尚未登录");
}
int id = Request.getInt("id"); // 根据id 删除某行数据
HashMap map = Query.make("lunbotu").find(id);
service.delete(id);// 根据id 删除某行数据
return showSuccess("删除成功",request.getHeader("referer"));//弹出删除成功,并跳回上一页
}
}

@ -1,11 +0,0 @@
package com.spring.dao;
import com.base.MapperBase;
import com.spring.entity.Lunbotu;
import org.springframework.stereotype.Repository;
@Repository
public interface LunbotuMapper extends MapperBase<Lunbotu> {
}

@ -1,135 +0,0 @@
package com.spring.entity;
import javax.persistence.Column;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
import java.io.Serializable;
import java.util.Date;
import net.jntoo.db.Query;
@Table(name = "lvyouxianlu")
public class Lvyouxianlu implements Serializable {
@GeneratedValue(generator = "JDBC") // 自增的主键映射
@Id
@Column(name = "id",insertable=false)
private Integer id;
@Column(name = "xianlubianhao")
private String xianlubianhao;
@Column(name = "xianlumingcheng")
private String xianlumingcheng;
@Column(name = "tupian")
private String tupian;
@Column(name = "chufadi")
private String chufadi;
@Column(name = "tujingdi")
private String tujingdi;
@Column(name = "zhongdian")
private String zhongdian;
@Column(name = "jiage")
private Double jiage;
@Column(name = "liulanliang")
private Integer liulanliang;
@Column(name = "xianlutese")
private String xianlutese;
@Column(name = "xianlujianjie")
private String xianlujianjie;
@Column(name = "addtime")
private String addtime;
private static final long serialVersionUID = 1L;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public Long getYudingCount()
{
return Query.make("yuding").where("lvyouxianluid" , id).count();
}
public String getXianlubianhao() {
return xianlubianhao;
}
public void setXianlubianhao(String xianlubianhao) {
this.xianlubianhao = xianlubianhao == null ? "" : xianlubianhao.trim();
}
public String getXianlumingcheng() {
return xianlumingcheng;
}
public void setXianlumingcheng(String xianlumingcheng) {
this.xianlumingcheng = xianlumingcheng == null ? "" : xianlumingcheng.trim();
}
public String getTupian() {
return tupian;
}
public void setTupian(String tupian) {
this.tupian = tupian == null ? "" : tupian.trim();
}
public String getChufadi() {
return chufadi;
}
public void setChufadi(String chufadi) {
this.chufadi = chufadi == null ? "" : chufadi.trim();
}
public String getTujingdi() {
return tujingdi;
}
public void setTujingdi(String tujingdi) {
this.tujingdi = tujingdi == null ? "" : tujingdi.trim();
}
public String getZhongdian() {
return zhongdian;
}
public void setZhongdian(String zhongdian) {
this.zhongdian = zhongdian == null ? "" : zhongdian.trim();
}
public Double getJiage() {
return jiage;
}
public void setJiage(Double jiage) {
this.jiage = jiage == null ? 0.0f : jiage;
}
public Integer getLiulanliang() {
return liulanliang;
}
public void setLiulanliang(Integer liulanliang) {
this.liulanliang = liulanliang == null ? 0 : liulanliang;
}
public String getXianlutese() {
return xianlutese;
}
public void setXianlutese(String xianlutese) {
this.xianlutese = xianlutese == null ? "" : xianlutese.trim();
}
public String getXianlujianjie() {
return xianlujianjie;
}
public void setXianlujianjie(String xianlujianjie) {
this.xianlujianjie = xianlujianjie == null ? "" : xianlujianjie.trim();
}
public String getAddtime() {
return addtime;
}
public void setAddtime(String addtime) {
this.addtime = addtime == null ? "" : addtime.trim();
}
}

@ -1,289 +0,0 @@
package com.spring.controller;
import com.spring.dao.LvyouxianluMapper;
import com.spring.entity.Lvyouxianlu;
import com.spring.service.LvyouxianluService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import tk.mybatis.mapper.entity.Example;
import util.Request;
import util.Info;
import dao.Query;
import java.util.*;
import dao.CommDAO;
/**
* 线 */
@Controller
public class LvyouxianluController extends BaseController
{
@Autowired
private LvyouxianluMapper dao;
@Autowired
private LvyouxianluService service;
/**
*
*
*/
@RequestMapping("/lvyouxianlu_list")
public String list()
{
// 检测是否有登录,没登录则跳转到登录页面
if(!checkLogin()){
return showError("尚未登录" , "./login.do");
}
String order = Request.get("order" , "id"); // 获取前台提交的URL参数 order 如果没有则设置为id
String sort = Request.get("sort" , "desc"); // 获取前台提交的URL参数 sort 如果没有则设置为desc
int pagesize = Request.getInt("pagesize" , 12); // 获取前台一页多少行数据
Example example = new Example(Lvyouxianlu.class); // 创建一个扩展搜索类
Example.Criteria criteria = example.createCriteria(); // 创建一个扩展搜索条件类
String where = " 1=1 "; // 创建初始条件为1=1
where += getWhere(); // 从方法中获取url 上的参数,并写成 sql条件语句
criteria.andCondition(where); // 将条件写进上面的扩展条件类中
if(sort.equals("desc")){ // 判断前台提交的sort 参数是否等于 desc倒序 是则使用倒序,否则使用正序
example.orderBy(order).desc(); // 把sql 语句设置成倒序
}else{
example.orderBy(order).asc(); // 把 sql 设置成正序
}
int page = request.getParameter("page") == null ? 1 : Integer.valueOf(request.getParameter("page")); // 获取前台提交的URL参数 page 如果没有则设置为1
page = Math.max(1 , page); // 取两个数的最大值防止page 小于1
List<Lvyouxianlu> list = service.selectPageExample(example , page , pagesize); // 获取当前页的行数
// 将列表写给界面使用
assign("totalCount" , request.getAttribute("totalCount"));
assign("list" , list);
assign("orderby" , order); // 把当前排序结果写进前台
assign("sort" , sort); // 把当前排序结果写进前台
return json(); // 将数据写给前端
}
public String getWhere()
{
_var = new LinkedHashMap(); // 重置数据
String where = " ";
// 以下也是一样的操作判断是否符合条件符合则写入sql 语句
if(!Request.get("xianlubianhao").equals("")) {
where += " AND xianlubianhao LIKE '%"+Request.get("xianlubianhao")+"%' ";
}
if(!Request.get("xianlumingcheng").equals("")) {
where += " AND xianlumingcheng LIKE '%"+Request.get("xianlumingcheng")+"%' ";
}
if(!Request.get("chufadi").equals("")) {
where += " AND chufadi LIKE '%"+Request.get("chufadi")+"%' ";
}
if(!Request.get("tujingdi").equals("")) {
where += " AND tujingdi LIKE '%"+Request.get("tujingdi")+"%' ";
}
if(!Request.get("zhongdian").equals("")) {
where += " AND zhongdian LIKE '%"+Request.get("zhongdian")+"%' ";
}
return where;
}
/**
*
*
*/
@RequestMapping("/lvyouxianlulist")
public String index()
{
String order = Request.get("order" , "id");
String sort = Request.get("sort" , "desc");
Example example = new Example(Lvyouxianlu.class);
Example.Criteria criteria = example.createCriteria();
String where = " 1=1 ";
where += getWhere();
criteria.andCondition(where);
if(sort.equals("desc")){
example.orderBy(order).desc();
}else{
example.orderBy(order).asc();
}
int page = request.getParameter("page") == null ? 1 : Integer.valueOf(request.getParameter("page"));
page = Math.max(1 , page);
List<Lvyouxianlu> list = service.selectPageExample(example , page , 12);
assign("totalCount" , request.getAttribute("totalCount"));
assign("list" , list);
assign("where" , where);
assign("orderby" , order);
assign("sort" , sort);
return json();
}
@RequestMapping("/lvyouxianlu_add")
public String add()
{
_var = new LinkedHashMap(); // 重置数据
return json(); // 将数据写给前端
}
@RequestMapping("/lvyouxianlu_updt")
public String updt()
{
_var = new LinkedHashMap(); // 重置数据
int id = Request.getInt("id");
// 获取行数据并赋值给前台jsp页面
Lvyouxianlu mmm = service.find(id);
assign("mmm" , mmm);
assign("updtself" , 0);
return json(); // 将数据写给前端
}
/**
*
* @return
*/
@RequestMapping("/lvyouxianluinsert")
public String insert()
{
_var = new LinkedHashMap(); // 重置数据
String tmp="";
Lvyouxianlu post = new Lvyouxianlu(); // 创建实体类
// 设置前台提交上来的数据到实体类中
post.setXianlubianhao(Request.get("xianlubianhao"));
post.setXianlumingcheng(Request.get("xianlumingcheng"));
post.setTupian(Request.get("tupian"));
post.setChufadi(Request.get("chufadi"));
post.setTujingdi(Request.get("tujingdi"));
post.setZhongdian(Request.get("zhongdian"));
post.setJiage(Request.getDouble("jiage"));
post.setLiulanliang(Request.getInt("liulanliang"));
post.setXianlutese(util.DownloadRemoteImage.run(Request.get("xianlutese")));
post.setXianlujianjie(util.DownloadRemoteImage.run(Request.get("xianlujianjie")));
post.setAddtime(Info.getDateStr());
service.insert(post); // 插入数据
int charuid = post.getId().intValue();
if(isAjax()){
return jsonResult(post);
}
return showSuccess("保存成功" , Request.get("referer").equals("") ? request.getHeader("referer") : Request.get("referer"));
}
/**
*
* @return
*/
@RequestMapping("/lvyouxianluupdate")
public String update()
{
_var = new LinkedHashMap(); // 重置数据
// 创建实体类
Lvyouxianlu post = new Lvyouxianlu();
// 将前台表单数据填充到实体类
if(!Request.get("xianlubianhao").equals(""))
post.setXianlubianhao(Request.get("xianlubianhao"));
if(!Request.get("xianlumingcheng").equals(""))
post.setXianlumingcheng(Request.get("xianlumingcheng"));
if(!Request.get("tupian").equals(""))
post.setTupian(Request.get("tupian"));
if(!Request.get("chufadi").equals(""))
post.setChufadi(Request.get("chufadi"));
if(!Request.get("tujingdi").equals(""))
post.setTujingdi(Request.get("tujingdi"));
if(!Request.get("zhongdian").equals(""))
post.setZhongdian(Request.get("zhongdian"));
if(!Request.get("jiage").equals(""))
post.setJiage(Request.getDouble("jiage"));
if(!Request.get("liulanliang").equals(""))
post.setLiulanliang(Request.getInt("liulanliang"));
if(!Request.get("xianlutese").equals(""))
post.setXianlutese(util.DownloadRemoteImage.run(Request.get("xianlutese")));
if(!Request.get("xianlujianjie").equals(""))
post.setXianlujianjie(util.DownloadRemoteImage.run(Request.get("xianlujianjie")));
if(!Request.get("addtime").equals(""))
post.setAddtime(Request.get("addtime"));
post.setId(Request.getInt("id"));
service.update(post); // 更新数据
int charuid = post.getId().intValue();
if(isAjax()){
return jsonResult(post);
}
return showSuccess("保存成功" , Request.get("referer")); // 弹出保存成功,并跳转到前台提交的 referer 页面
}
/**
*
*/
@RequestMapping("/lvyouxianlu_detail")
public String detail()
{
_var = new LinkedHashMap(); // 重置数据
int id = Request.getInt("id");
Lvyouxianlu map = service.find(id); // 根据前台url 参数中的id获取行数据
assign("map" , map); // 把数据写到前台
return json(); // 将数据写给前端
}
/**
*
*/
@RequestMapping("/lvyouxianludetail")
public String detailweb()
{
_var = new LinkedHashMap(); // 重置数据
int id = Request.getInt("id");
Lvyouxianlu map = service.find(id);
Query.execute("update lvyouxianlu set liulanliang=liulanliang+1 where id='"+request.getParameter("id")+"'");
if(!checkLogin()){
assign("isCollect" , false);
}else{
assign("isCollect" , Query.make("shoucangjilu").where("username",session.getAttribute("username")).where("biao" , "lvyouxianlu").where("xwid",id).count()>0);
}
assign("map" , map);
return json(); // 将数据写给前端
}
/**
*
*/
@RequestMapping("/lvyouxianlu_delete")
public String delete()
{
_var = new LinkedHashMap(); // 重置数据
if(!checkLogin()){
return showError("尚未登录");
}
int id = Request.getInt("id"); // 根据id 删除某行数据
HashMap map = Query.make("lvyouxianlu").find(id);
service.delete(id);// 根据id 删除某行数据
return showSuccess("删除成功",request.getHeader("referer"));//弹出删除成功,并跳回上一页
}
}

@ -1,11 +0,0 @@
package com.spring.dao;
import com.base.MapperBase;
import com.spring.entity.Lvyouxianlu;
import org.springframework.stereotype.Repository;
@Repository
public interface LvyouxianluMapper extends MapperBase<Lvyouxianlu> {
}

@ -0,0 +1,108 @@
<template>
<div class="MKPlayer" id="MKPlayer" @click.stop.prevent>
<div class="notification" v-show="message!=''" v-text="message">
</div>
<div class="MKPlayer-play-message" :class="{active:openMusicList}">
<!-- 播放列表 -->
<div class="MKPlayer-play-disc">
<div class="mkdisc">
<a class="mkloop" style="display: inline-block">
<i class="mkicon mkicon-disc"></i>
</a>
</div>
<div class="mklyric" :style="{transform:scrollTopText}">
<ul>
<li v-for="(v,k,index) in lyricList" :data-on="index" class="lrc-item" :class="{mkactive:k==lastLyric}" v-text="v"></li>
</ul>
</div>
</div>
<div class="MKPlayer-play-list" :class="{mkempty:musicList.length==0}">
<div class="MKPlayer-play-header">
<div class="mkheader">播放列表 <span v-html="musicList.length"></span></div>
</div>
<div class="mkempty-text">
暂无音乐
</div>
<div class="MKPlayer-play-music">
<div class="mkmusic-row clearfix" v-for="(v,k) in musicList" :class="{active:v.id == music.id}">
<div class="mkmusic-icon">
<i class="mkicon mkicon-play-o"></i>
</div>
<div class="mkmusic-title" @click="playIndex(k)">
<div class="mkmusic-hover-icon">
<i class="mkicon mkicon-collect" title="收藏" @click.prevent.stop="collect(v)"></i>
<i class="mkicon mkicon-download" title="下载" @click.prevent.stop="download(v)"></i>
<i class="mkicon mkicon-like" title="喜欢" @click.prevent.stop="like(v)"></i>
</div>
<div class="mkgeming" v-html="v.name"></div>
</div>
<div class="mkmusic-name" v-text="v.artist"></div>
<div class="mkmusic-album" v-text="v.album"></div>
</div>
</div>
</div>
</div>
<div class="MKPlayer-bottom">
<div class="MKPlayer-bottom-btn">
<a href="javascript:;">
<i class="mkicon mkicon-prev" @click.stop.prevent="prevMusic"></i>
</a>
<a href="javascript:;" class="MKPlayer-play" :class="{active:playState}">
<i class="mkicon mkicon-play text-active" @click.stop.prevent="playMusic"></i>
<i class="mkicon mkicon-pause" @click.stop.prevent="pauseMusic"></i>
</a>
<a href="javascript:;">
<i class="mkicon mkicon-next" data-func="next" @click.stop.prevent="nextMusic"></i>
</a>
</div>
<div class="MKPlayer-info">
<a href="javascript:;" :class="'MKPlayer-play-type '+ orderby[playOrderby]" @click="updateOrderby">
<i class="mkicon mkicon-list-cycle" data-type="mklist"></i>
<i class="mkicon mkicon-random" data-type="mkrandom"></i>
<i class="mkicon mkicon-single-cycle" data-type="mksingle"></i>
</a>
<a href="javascript:;">
<i class="mkicon mkicon-gedan" @click="gedanClick"></i><span style="font-size: 14px">{{musicList.length}}</span>
</a>
</div>
<div class="MKPlayer-volume">
<div class="MKPlayer-volume-left">
<i class="mkicon" :class="{'mkicon-volume':!mkmute ,'mkicon-mute':mkmute }" @click="setMute"></i>
</div>
<mk-progress v-model="volume" @changed="onVolumeChange" :lock="false"></mk-progress>
</div>
<!--进度条 -->
<div class="MKPlayer-progress">
<div class="MKPlayer-music-info clearfix">
<span v-text="progressTime" style="float: right"></span>
<span v-text="music.name"></span>
<span v-text="music.artist"></span>
</div>
<mk-progress v-model="musicProsess" @changed="onMusicProsess" :lock="!playState"></mk-progress>
</div>
</div>
</div>
</template>
<style type="text/scss" lang="scss">
@import "./asset/icon/MKPlayer";
</style>
<script>
export default {
name: "MKPlayer",
data() {
return {}
},
watch: {},
computed: {},
methods: {},
created() {
},
mounted() {
},
destroyed() {
}
}
</script>

@ -1,38 +0,0 @@
package com.base;
import tk.mybatis.mapper.common.Mapper;
import org.apache.ibatis.annotations.InsertProvider;
import org.apache.ibatis.annotations.Options;
import tk.mybatis.mapper.provider.SqlServerProvider;
/**
* Mapper
* @param <T>
*/
public interface MapperBase<T> extends Mapper<T>
{
/**
* `null`使
*
* @param record
* @return
*/
@Options(useGeneratedKeys = true, keyProperty = "id")
@InsertProvider(type = SqlServerProvider.class, method = "dynamicSQL")
@Override
int insert(T record);
/**
* `null`使
*
* @param record
* @return
*/
@Options(useGeneratedKeys = true, keyProperty = "id")
@InsertProvider(type = SqlServerProvider.class, method = "dynamicSQL")
@Override
int insertSelective(T record);
}

@ -1,50 +0,0 @@
package com.spring.entity;
import javax.persistence.Column;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
import java.io.Serializable;
import java.util.Date;
import net.jntoo.db.Query;
@Table(name = "meishifenlei")
public class Meishifenlei implements Serializable {
@GeneratedValue(generator = "JDBC") // 自增的主键映射
@Id
@Column(name = "id",insertable=false)
private Integer id;
@Column(name = "fenleimingcheng")
private String fenleimingcheng;
@Column(name = "addtime")
private String addtime;
private static final long serialVersionUID = 1L;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getFenleimingcheng() {
return fenleimingcheng;
}
public void setFenleimingcheng(String fenleimingcheng) {
this.fenleimingcheng = fenleimingcheng == null ? "" : fenleimingcheng.trim();
}
public String getAddtime() {
return addtime;
}
public void setAddtime(String addtime) {
this.addtime = addtime == null ? "" : addtime.trim();
}
}

@ -1,175 +0,0 @@
package com.spring.controller;
import com.spring.dao.MeishifenleiMapper;
import com.spring.entity.Meishifenlei;
import com.spring.service.MeishifenleiService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import tk.mybatis.mapper.entity.Example;
import util.Request;
import util.Info;
import dao.Query;
import java.util.*;
import dao.CommDAO;
/**
* */
@Controller
public class MeishifenleiController extends BaseController
{
@Autowired
private MeishifenleiMapper dao;
@Autowired
private MeishifenleiService service;
/**
*
*
*/
@RequestMapping("/meishifenlei_list")
public String list()
{
// 检测是否有登录,没登录则跳转到登录页面
if(!checkLogin()){
return showError("尚未登录" , "./login.do");
}
String order = Request.get("order" , "id"); // 获取前台提交的URL参数 order 如果没有则设置为id
String sort = Request.get("sort" , "desc"); // 获取前台提交的URL参数 sort 如果没有则设置为desc
int pagesize = Request.getInt("pagesize" , 12); // 获取前台一页多少行数据
Example example = new Example(Meishifenlei.class); // 创建一个扩展搜索类
Example.Criteria criteria = example.createCriteria(); // 创建一个扩展搜索条件类
String where = " 1=1 "; // 创建初始条件为1=1
where += getWhere(); // 从方法中获取url 上的参数,并写成 sql条件语句
criteria.andCondition(where); // 将条件写进上面的扩展条件类中
if(sort.equals("desc")){ // 判断前台提交的sort 参数是否等于 desc倒序 是则使用倒序,否则使用正序
example.orderBy(order).desc(); // 把sql 语句设置成倒序
}else{
example.orderBy(order).asc(); // 把 sql 设置成正序
}
int page = request.getParameter("page") == null ? 1 : Integer.valueOf(request.getParameter("page")); // 获取前台提交的URL参数 page 如果没有则设置为1
page = Math.max(1 , page); // 取两个数的最大值防止page 小于1
List<Meishifenlei> list = service.selectPageExample(example , page , pagesize); // 获取当前页的行数
// 将列表写给界面使用
assign("totalCount" , request.getAttribute("totalCount"));
assign("list" , list);
assign("orderby" , order); // 把当前排序结果写进前台
assign("sort" , sort); // 把当前排序结果写进前台
return json(); // 将数据写给前端
}
public String getWhere()
{
_var = new LinkedHashMap(); // 重置数据
String where = " ";
// 以下也是一样的操作判断是否符合条件符合则写入sql 语句
if(!Request.get("fenleimingcheng").equals("")) {
where += " AND fenleimingcheng LIKE '%"+Request.get("fenleimingcheng")+"%' ";
}
return where;
}
@RequestMapping("/meishifenlei_add")
public String add()
{
_var = new LinkedHashMap(); // 重置数据
return json(); // 将数据写给前端
}
@RequestMapping("/meishifenlei_updt")
public String updt()
{
_var = new LinkedHashMap(); // 重置数据
int id = Request.getInt("id");
// 获取行数据并赋值给前台jsp页面
Meishifenlei mmm = service.find(id);
assign("mmm" , mmm);
assign("updtself" , 0);
return json(); // 将数据写给前端
}
/**
*
* @return
*/
@RequestMapping("/meishifenleiinsert")
public String insert()
{
_var = new LinkedHashMap(); // 重置数据
String tmp="";
Meishifenlei post = new Meishifenlei(); // 创建实体类
// 设置前台提交上来的数据到实体类中
post.setFenleimingcheng(Request.get("fenleimingcheng"));
post.setAddtime(Info.getDateStr());
service.insert(post); // 插入数据
int charuid = post.getId().intValue();
if(isAjax()){
return jsonResult(post);
}
return showSuccess("保存成功" , Request.get("referer").equals("") ? request.getHeader("referer") : Request.get("referer"));
}
/**
*
* @return
*/
@RequestMapping("/meishifenleiupdate")
public String update()
{
_var = new LinkedHashMap(); // 重置数据
// 创建实体类
Meishifenlei post = new Meishifenlei();
// 将前台表单数据填充到实体类
if(!Request.get("fenleimingcheng").equals(""))
post.setFenleimingcheng(Request.get("fenleimingcheng"));
if(!Request.get("addtime").equals(""))
post.setAddtime(Request.get("addtime"));
post.setId(Request.getInt("id"));
service.update(post); // 更新数据
int charuid = post.getId().intValue();
if(isAjax()){
return jsonResult(post);
}
return showSuccess("保存成功" , Request.get("referer")); // 弹出保存成功,并跳转到前台提交的 referer 页面
}
/**
*
*/
@RequestMapping("/meishifenlei_delete")
public String delete()
{
_var = new LinkedHashMap(); // 重置数据
if(!checkLogin()){
return showError("尚未登录");
}
int id = Request.getInt("id"); // 根据id 删除某行数据
HashMap map = Query.make("meishifenlei").find(id);
service.delete(id);// 根据id 删除某行数据
return showSuccess("删除成功",request.getHeader("referer"));//弹出删除成功,并跳回上一页
}
}

@ -1,11 +0,0 @@
package com.spring.dao;
import com.base.MapperBase;
import com.spring.entity.Meishifenlei;
import org.springframework.stereotype.Repository;
@Repository
public interface MeishifenleiMapper extends MapperBase<Meishifenlei> {
}

@ -1,48 +0,0 @@
package com.spring.controller;
import dao.CommDAO;
import net.jntoo.db.Query;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import util.Request;
import java.util.HashMap;
@Controller
public class PaymentController extends BaseController{
/**
*
* @return String
*/
@RequestMapping("/payment")
public String payment()
{
String id,biao;
if(request.getParameter("out_trade_no")!=null)
{
String[] out_trade_no = request.getParameter("out_trade_no").split("\\-");
id = out_trade_no[2];
biao = out_trade_no[1];
}else{
id =request.getParameter("id");
biao =request.getParameter("biao");
}
String sql = "update " + biao + " set iszf='是' where id='" + id + "'";
new CommDAO().commOper(sql);
HashMap order = Query.make(biao).find(id);
if("yuding".equals(biao))
{
Query.execute("update yuding set zhuangtai='预定成功' where id='"+order.get("id")+"'");
}
String referer = Request.get("referer").equals("") ? "sy.do" : Request.get("referer");
return showSuccess("支付成功",referer);
}
}

@ -1,7 +0,0 @@
package dao;
/**
* jntoo-query.jar
*/
public class Query extends net.jntoo.db.Query {
}

@ -1,32 +0,0 @@
package com.spring.util;
import com.spring.BootApplication;
import net.jntoo.annotation.JdbcConnection;
import net.jntoo.annotation.RequestJdbcConnection;
import org.springframework.beans.factory.annotation.Autowired;
import javax.sql.DataSource;
import java.sql.Connection;
@JdbcConnection
public class QueryConnection {
static private Connection conn = null;
// 让jntoo-query 获取链接
@RequestJdbcConnection
public Connection getConnect()
{
try{
if(conn == null || conn.isClosed()){
DataSource source = BootApplication.content.getBean(DataSource.class);
Connection connection = source.getConnection();
//System.out.println(connection);
conn = connection;
}
}catch (Exception e){
System.err.println("链接数据库出错");
}
return conn;
}
}

@ -1,52 +0,0 @@
package util.tld;
import dao.CommDAO;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.PageContext;
import javax.servlet.jsp.tagext.JspFragment;
import javax.servlet.jsp.tagext.SimpleTagSupport;
import java.io.IOException;
import java.io.StringWriter;
import java.util.HashMap;
import java.util.List;
/**
* jsp ssm:sql SQL
*/
public class QuerySql extends SimpleTagSupport {
private String var;
private String type;
public String getVar() {
return var;
}
public void setVar(String var) {
this.var = var;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
@Override
public void doTag() throws JspException, IOException {
JspFragment jf = this.getJspBody();
PageContext context = (PageContext)jf.getJspContext();
StringWriter sw = new StringWriter();
jf.invoke(sw);
String sql = sw.getBuffer().toString();
if(type.equals("select")){
List<HashMap> list = new CommDAO().select(sql);
context.setAttribute(var , list , PageContext.REQUEST_SCOPE);
}else if(type.equals("find")){
HashMap list = new CommDAO().find(sql);
context.setAttribute(var , list , PageContext.REQUEST_SCOPE);
}
//jf.invoke(null);
}
}

@ -1,106 +0,0 @@
package util;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
*
*/
public class Request {
/**
* HttpServletRequest
* @return
*/
static public HttpServletRequest getRequest()
{
return ((ServletRequestAttributes) RequestContextHolder
.getRequestAttributes()).getRequest();
}
/**
* HttpServletResponse
* @return
*/
static public HttpServletResponse getResponse()
{
return ((ServletRequestAttributes) RequestContextHolder
.getRequestAttributes()).getResponse();
}
/**
*
* @param name
* @return
*/
static public String get(String name)
{
String[] value = getRequest().getParameterValues(name);
return value == null || value.length==0 ? "" : StringUtil.join(",",value);
}
/**
* URL 0
* @param name
* @return
*/
static public int getInt(String name)
{
String value = get(name , "0");
return value.equals("") ? 0 : Integer.valueOf(value).intValue();
}
/**
* URL 0
* @param name
* @param def
* @return
*/
static public int getInt(String name , int def)
{
String value = get(name , String.valueOf(def));
return value.equals("") ? def : Integer.valueOf(value).intValue();
}
/**
* URL
* @param name
* @return
*/
static public double getDouble(String name)
{
String value = get(name , "0");
return value.equals("") ? 0.0f : Double.valueOf(value).doubleValue();
}
/**
* URL
* @param name
* @param def
* @return
*/
static public double getDouble(String name , double def)
{
String value = get(name , String.valueOf(def));
return value.equals("") ? 0.0f : Double.valueOf(value).doubleValue();
}
/**
* Url
* @param name
* @param def
* @return
*/
static public String get(String name, String def)
{
if(def == null)
{
def = "";
}
String[] value = getRequest().getParameterValues(name);
return value == null || value.length==0 ? def : StringUtil.join(",",value);
}
}

@ -1,119 +0,0 @@
package com.base;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.spring.util.CollectList;
import tk.mybatis.mapper.common.Mapper;
import tk.mybatis.mapper.entity.Example;
import util.Request;
import java.util.List;
/**
* Service
* @param <E>
*/
abstract public class ServiceBase<E> {
/**
* ,
* @return
*/
abstract protected Mapper<E> getDao();
/**
*
* @return
*/
public List<E> select() {
return getDao().select(null);
}
/**
*
* @param y
* @return
*/
public List<E> select(E y) {
return getDao().select(y);
}
/**
*
* @param id
* @return
*/
public E find(Object id) {
return getDao().selectByPrimaryKey(id);
}
/**
*
* @param id
* @return
*/
public E findEntity(E id)
{
return getDao().selectOne(id);
}
/**
*
* @param obj
* @param page
* @param pageSize
* @return
*/
public List<E> selectPage(E obj, int page, int pageSize) {
//int count = dao.selectCount(obj);
PageHelper.startPage(page , pageSize , true);
List<E> list = select(obj);
PageInfo<E> pageInfo = new PageInfo<E>(list);
new CollectList(pageInfo.getTotal() , pageSize , page);
return list;
}
/**
* Example
* @param obj
* @param page
* @param pageSize
* @return
*/
public List<E> selectPageExample(Example obj , int page , int pageSize)
{
PageHelper.startPage(page , pageSize , true);
List<E> list = getDao().selectByExample(obj);
PageInfo<E> pageInfo = new PageInfo<E>(list);
new CollectList(pageInfo.getTotal() , pageSize , page);
return list;
}
/**
*
* @param id
* @return
*/
public int delete(Object id)
{
return getDao().deleteByPrimaryKey(id);
}
/**
*
* @param y
* @return
*/
public int insert(E y) {
return getDao().insertSelective(y);
}
/**
*
* @param y
* @return
*/
public int update(E y) {
return getDao().updateByPrimaryKeySelective(y);
}
}

@ -1,127 +0,0 @@
package com.spring.entity;
import java.io.Serializable;
import java.util.Date;
import java.util.Map;
import javax.persistence.*;
@Table(name = "shoucangjilu")
public class Shoucangjilu implements Serializable {
@GeneratedValue(generator = "JDBC") // 自增的主键映射
@Id
@Column(name = "id",insertable=false)
private Integer id;
private String username;
private Integer xwid;
private String biao;
private String ziduan;
private String biaoti;
private String url;
private String addtime;
private static final long serialVersionUID = 1L;
/**
* @return id
*/
public Integer getId() {
return id;
}
public String getBiaoti() {
return biaoti;
}
public void setBiaoti(String biaoti) {
this.biaoti = biaoti;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
/**
* @param id
*/
public void setId(Integer id) {
this.id = id;
}
/**
* @return username
*/
public String getUsername() {
return username;
}
/**
* @param username
*/
public void setUsername(String username) {
this.username = username == null ? null : username.trim();
}
/**
* @return xwid
*/
public Integer getXwid() {
return xwid;
}
/**
* @param xwid
*/
public void setXwid(Integer xwid) {
this.xwid = xwid;
}
/**
* @return biao
*/
public String getBiao() {
return biao;
}
/**
* @param biao
*/
public void setBiao(String biao) {
this.biao = biao == null ? null : biao.trim();
}
/**
* @return ziduan
*/
public String getZiduan() {
return ziduan;
}
/**
* @param ziduan
*/
public void setZiduan(String ziduan) {
this.ziduan = ziduan == null ? null : ziduan.trim();
}
/**
* @return addtime
*/
public String getAddtime() {
return addtime;
}
/**
* @param addtime
*/
public void setAddtime(String addtime) {
this.addtime = addtime;
}
}

@ -1,100 +0,0 @@
package com.spring.controller;
import com.spring.entity.Shoucangjilu;
import com.spring.service.ShoucangjiluService;
import dao.Query;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import tk.mybatis.mapper.entity.Example;
import util.Info;
import util.Request;
import javax.annotation.Resource;
import java.util.List;
/**
*
*/
@Controller
public class ShoucangjiluController extends BaseController {
@Resource
protected ShoucangjiluService service;
/**
*
* @return
*/
@RequestMapping("/collect")
public String collect()
{
if(!checkLogin()){
return showError("您尚未登录请登录后在操作");
}
int id=Request.getInt("id");
String biao=request.getParameter("biao");
String ziduan=request.getParameter("ziduan");
Shoucangjilu scjl = new Shoucangjilu();
scjl.setXwid(id);
scjl.setBiao(biao);
scjl.setBiaoti(Query.make(biao).where("id" , id).value(ziduan));
scjl.setUrl(request.getHeader("referer"));
scjl.setZiduan(ziduan);
scjl.setAddtime(Info.getDateStr());
scjl.setUsername(request.getSession().getAttribute("username").toString());
service.insert(scjl);
return showSuccess("收藏成功" , request.getHeader("referer"));
}
/**
*
* @return
*/
@RequestMapping("/shoucangjilu_list")
public String index()
{
int page = Math.max(Integer.valueOf(Request.get("page" , "1")) , 1);
Example example = new Example(Shoucangjilu.class);
Example.Criteria criteria = example.createCriteria();
criteria.andEqualTo("username" , request.getSession().getAttribute("username"));
List<Shoucangjilu> list = service.selectPageExample(example , page , 15);
if(isAjax()){
return json();
}
return "shoucangjilu_list";
}
/**
*
* @return
*/
@RequestMapping("/shoucangjilu_list2")
public String index2()
{
int page = Math.max(Integer.valueOf(Request.get("page" , "1")) , 1);
Example example = new Example(Shoucangjilu.class);
Example.Criteria criteria = example.createCriteria();
criteria.andEqualTo("username" , request.getSession().getAttribute("username"));
List<Shoucangjilu> list = service.selectPageExample(example , page , 15);
assign("list" , list);
if(isAjax()){
return json();
}
return "shoucangjilu_list";
}
/**
*
* @return
*/
@RequestMapping("/shoucangjilu_delete")
public String delete()
{
String id = Request.get("id");
service.delete(id);
return showSuccess("删除成功");
}
}

@ -1,12 +0,0 @@
package com.spring.dao;
import com.base.MapperBase;
import com.spring.entity.Shoucangjilu;
import org.springframework.stereotype.Repository;
/**
* shoucangjilumapper
*/
@Repository
public interface ShoucangjiluMapper extends MapperBase<Shoucangjilu> {
}

@ -1,104 +0,0 @@
package util;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
/**
*
*/
public class StringUtil {
/**
* a,b,c,d ,des
* @param des
* @param list
* @return
*/
public static String join(String des , Object list){
StringBuffer buffer = new StringBuffer();
if(list instanceof int[]) {
int[] var = (int[]) list;
for(int i=0;i<var.length;i++){
if(i>0){
buffer.append(des);
}
buffer.append(var[i]);
}
}else if(list instanceof long[]) {
long[] var = (long[]) list;
for(int i=0;i<var.length;i++){
if(i>0){
buffer.append(des);
}
buffer.append(var[i]);
}
}else if(list instanceof double[]) {
double[] var = (double[]) list;
for(int i=0;i<var.length;i++){
if(i>0){
buffer.append(des);
}
buffer.append(var[i]);
}
}else if(list instanceof float[]) {
float[] var = (float[]) list;
for(int i=0;i<var.length;i++){
if(i>0){
buffer.append(des);
}
buffer.append(var[i]);
}
}else if(list instanceof String[]) {
String[] var = (String[]) list;
for(int i=0;i<var.length;i++){
if(i>0){
buffer.append(des);
}
buffer.append(var[i]);
}
}else if(list instanceof boolean[]) {
boolean[] var = (boolean[]) list;
for(int i=0;i<var.length;i++){
if(i>0){
buffer.append(des);
}
buffer.append(var[i]?"true" : "false");
}
}else if(list instanceof List){
List var = (List) list;
for(int i=0;i<var.size();i++){
if(i>0){
buffer.append(des);
}
buffer.append(var.get(i));
}
}else if(list instanceof Map){
Map var = (Map) list;
Iterator entries = var.entrySet().iterator();
int i=0;
while (entries.hasNext()) {
if(i>0){
buffer.append(des);
}
Map.Entry entry = (Map.Entry) entries.next();
Object value = entry.getValue();
buffer.append(value);
i++;
}
}else if(list instanceof Iterable)
{
Iterator it = ((Iterable)list).iterator();
int i=0;
while(it.hasNext()){
if(i > 0) buffer.append(des);
Object str = it.next();
buffer.append(str);
i++;
}
}
return buffer.toString();
}
}

@ -1,93 +0,0 @@
package util;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
/**
*
*/
public class Timer {
/**
*
* @param currentDate
* @param format
* @return
*/
public static Date getPrevMonthStartDate(String currentDate , String format){
SimpleDateFormat sdf = new SimpleDateFormat(format);
Calendar c = Calendar.getInstance();
try {
c.setTime(sdf.parse(currentDate));
c.add(Calendar.MONTH, -1);
//设置为1号,当前日期既为本月第一天
c.set(Calendar.DAY_OF_MONTH, 1);
} catch (ParseException e) {
e.printStackTrace();
}
return c.getTime();
}
/**
*
* @param date
* @param format
* @return
*/
public static Date getPrevMonthEndDate(String date , String format){
SimpleDateFormat sdf = new SimpleDateFormat(format);
Calendar c = Calendar.getInstance();
try {
c.setTime(sdf.parse(date));
c.add(Calendar.MONTH , -1);
c.set(Calendar.DAY_OF_MONTH, c.getActualMaximum(Calendar.DAY_OF_MONTH));
c.set(Calendar.HOUR_OF_DAY, 23);
c.set(Calendar.MINUTE, 59);
c.set(Calendar.SECOND, 59);
} catch (ParseException e) {
e.printStackTrace();
}
return c.getTime();
}
/**
*
* @param currentDate
* @param format
* @return
*/
public static Date getMonthStartDate(String currentDate , String format){
SimpleDateFormat sdf = new SimpleDateFormat(format);
Calendar c = Calendar.getInstance();
try {
c.setTime(sdf.parse(currentDate));
c.add(Calendar.MONTH, 0);
//设置为1号,当前日期既为本月第一天
c.set(Calendar.DAY_OF_MONTH, 1);
} catch (ParseException e) {
e.printStackTrace();
}
return c.getTime();
}
/**
*
* @param date
* @param format
* @return
*/
public static Date getMonthEndDate(String date , String format)
{
SimpleDateFormat sdf = new SimpleDateFormat(format);
Calendar c = Calendar.getInstance();
try {
c.setTime(sdf.parse(date));
c.set(Calendar.DAY_OF_MONTH, c.getActualMaximum(Calendar.DAY_OF_MONTH));
c.set(Calendar.HOUR_OF_DAY, 23);
c.set(Calendar.MINUTE, 59);
c.set(Calendar.SECOND, 59);
} catch (ParseException e) {
e.printStackTrace();
}
return c.getTime();
}
}

@ -1,18 +0,0 @@
package com.spring.config;
import com.spring.interceptor.TokenInterceptor;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
@Configuration
public class TokenConfig implements WebMvcConfigurer {
@Override
public void addInterceptors(InterceptorRegistry registry) {
//注册TokenInterceptor拦截器
InterceptorRegistration registration = registry.addInterceptor(new TokenInterceptor());
registration.addPathPatterns("/**"); //所有路径都被拦截
}
}

@ -1,59 +0,0 @@
package com.spring.interceptor;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import dao.Query;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;
import util.Info;
import java.util.Map;
public class TokenInterceptor implements HandlerInterceptor {
/**
* Controller
*/
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) {
String token = request.getHeader("token");
if(token != null && !token.equals("") && request.getSession().getAttribute("id") == null)
{
HttpSession session = request.getSession();
//处理session
Map<String , String> tokenInfo = Query.make("token").where("token" , token).where("token_time" , ">" , Info.getDateStr()).find();
if(!tokenInfo.isEmpty()){
session.setAttribute("cx" , tokenInfo.get("cx"));
session.setAttribute("login" , tokenInfo.get("login"));
session.setAttribute("username" , tokenInfo.get("username"));
session.setAttribute("id" , tokenInfo.get("id"));
JSONObject session1 = JSON.parseObject(tokenInfo.get("session"));
for( Map.Entry<String , Object> entry :session1.entrySet())
{
session.setAttribute(entry.getKey() , entry.getValue());
}
}
}
return true;//如果设置为false时被请求时拦截器执行到此处将不会继续操作
//如果设置为true时请求将会继续执行后面的操作
}
/**
* Controller
*/
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) {
// System.out.println("执行了TestInterceptor的postHandle方法");
}
/**
* DispatcherServlet
*/
@Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) {
// System.out.println("执行了TestInterceptor的afterCompletion方法");
}
}

@ -1,90 +0,0 @@
package com.spring.controller;
import org.apache.commons.io.FileUtils;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.multipart.MultipartFile;
import java.io.File;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.UUID;
/**
*
*/
@Controller
public class UploadController extends BaseController{
/**
*
* @param fujian
* @return
* @throws Exception
*/
@RequestMapping(value = "/upload_re")
public String Upload(MultipartFile fujian) throws Exception
{
String fileName = fujian.getOriginalFilename();
String suffixName = fileName.substring(fileName.lastIndexOf("."));
fileName = UUID.randomUUID()+suffixName;
String filePath = getFolder("upload");
// String filePath="upload/20210423/";
try{
File file = new File( getPhysicalPath(filePath)+"/"+fileName);
//将资源保存到本地文件夹下
String localPath ="bysj-server/src/main/webapp/upload/20210423";
File localFile=new File(localPath);
if(!localFile.exists()){
localFile.mkdirs();
}
//获取本地路径
File localStaticFile=new File(localFile.getAbsolutePath()+"\\"+fileName);
System.out.println("localStaticFile====>"+localStaticFile);
System.out.println("本地存储真实位置:"+localFile.getAbsolutePath()+"\\"+fileName);
FileUtils.copyInputStreamToFile(fujian.getInputStream(),localStaticFile);
fujian.transferTo(file);
System.out.println("setAttributefilePath=====fileName:"+filePath+"/"+fileName);
request.setAttribute("url",filePath+fileName);
if(isAjax())
{
return jsonResult(request.getAttribute("url"));
}
return "upload";
}catch (Exception e){
return showError(e.getMessage());
}
}
private String getFolder(String path) {
SimpleDateFormat formater = new SimpleDateFormat("yyyyMMdd");
path += "/" + "20210423" +"/";
File dir = new File(this.getPhysicalPath(path));
if (!dir.exists()) {
try {
dir.mkdirs();
} catch (Exception e) {
return "";
}
}
return path;
}
/**
*
*
* @param path
* @return
*/
private String getPhysicalPath(String path) {
String servletPath = this.request.getServletPath();
System.out.println("servletPath===>"+servletPath);
String realPath = this.request.getSession().getServletContext()
.getRealPath(servletPath);
System.out.println("realPath===>"+realPath);
return new File(realPath).getParent() +"/" +path;
}
}

@ -1,268 +0,0 @@
package util;
import org.apache.commons.fileupload.FileItemIterator;
import org.apache.commons.fileupload.FileItemStream;
import org.apache.commons.fileupload.FileUploadBase.InvalidContentTypeException;
import org.apache.commons.fileupload.FileUploadBase.SizeLimitExceededException;
import org.apache.commons.fileupload.FileUploadException;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
import org.apache.commons.fileupload.util.Streams;
import javax.servlet.http.HttpServletRequest;
import java.io.*;
import java.text.SimpleDateFormat;
import java.util.*;
//import sun.misc.BASE64Decoder;
/**
* UEditor
*
*/
public class Uploader {
// 输出文件地址
private String url = "";
// 上传文件名
private String fileName = "";
// 状态
private String state = "";
// 文件类型
private String type = "";
// 原始文件名
private String originalName = "";
// 文件大小
private long size = 0;
private HttpServletRequest request = null;
private String title = "";
// 保存路径
private String savePath = "upload";
// 文件允许格式
private String[] allowFiles = { ".rar", ".doc", ".docx", ".zip", ".pdf",".txt", ".swf", ".wmv", ".gif", ".png", ".jpg", ".jpeg", ".bmp" };
// 文件大小限制单位KB
private int maxSize = 10000;
private HashMap<String, String> errorInfo = new HashMap<String, String>();
public Uploader(HttpServletRequest request) {
this.request = request;
HashMap<String, String> tmp = this.errorInfo;
tmp.put("SUCCESS", "SUCCESS"); //默认成功
tmp.put("NOFILE", "未包含文件上传域");
tmp.put("TYPE", "不允许的文件格式");
tmp.put("SIZE", "文件大小超出限制");
tmp.put("ENTYPE", "请求类型ENTYPE错误");
tmp.put("REQUEST", "上传请求异常");
tmp.put("IO", "IO异常");
tmp.put("DIR", "目录创建失败");
tmp.put("UNKNOWN", "未知错误");
}
public void upload() throws Exception {
boolean isMultipart = ServletFileUpload.isMultipartContent(this.request);
if (!isMultipart) {
this.state = this.errorInfo.get("NOFILE");
return;
}
DiskFileItemFactory dff = new DiskFileItemFactory();
String savePath = this.getFolder(this.savePath);
dff.setRepository(new File(savePath));
try {
ServletFileUpload sfu = new ServletFileUpload(dff);
//sfu.setSizeMax(this.maxSize * 1024);
sfu.setHeaderEncoding("utf-8");
FileItemIterator fii = sfu.getItemIterator(this.request);
while (fii.hasNext()) {
FileItemStream fis = fii.next();
if (!fis.isFormField()) {
this.originalName = fis.getName().substring(fis.getName().lastIndexOf(System.getProperty("file.separator")) + 1);
if (!this.checkFileType(this.originalName)) {
this.state = this.errorInfo.get("TYPE");
continue;
}
this.fileName = this.getName(this.originalName);
this.type = this.getFileExt(this.fileName);
this.url = savePath + "/" + this.fileName;
BufferedInputStream in = new BufferedInputStream(fis.openStream());
File file = new File(this.getPhysicalPath(this.url));
FileOutputStream out = new FileOutputStream( file );
BufferedOutputStream output = new BufferedOutputStream(out);
Streams.copy(in, output, true);
this.state=this.errorInfo.get("SUCCESS");
this.size = file.length();
//UE中只会处理单张上传完成后即退出
break;
} else {
String fname = fis.getFieldName();
//只处理title其余表单请自行处理
if(!fname.equals("pictitle")){
continue;
}
BufferedInputStream in = new BufferedInputStream(fis.openStream());
BufferedReader reader = new BufferedReader(new InputStreamReader(in));
StringBuffer result = new StringBuffer();
while (reader.ready()) {
result.append((char)reader.read());
}
this.title = new String(result.toString().getBytes(),"utf-8");
reader.close();
}
}
} catch (SizeLimitExceededException e) {
this.state = this.errorInfo.get("SIZE");
} catch (InvalidContentTypeException e) {
this.state = this.errorInfo.get("ENTYPE");
} catch (FileUploadException e) {
this.state = this.errorInfo.get("REQUEST");
} catch (Exception e) {
this.state = this.errorInfo.get("UNKNOWN");
}
}
/**
* base64
* @param fieldName
*/
/*public void uploadBase64(String fieldName){
String savePath = this.getFolder(this.savePath);
String base64Data = this.request.getParameter(fieldName);
this.fileName = this.getName("test.png");
this.url = savePath + "/" + this.fileName;
BASE64Decoder decoder = new BASE64Decoder();
try {
File outFile = new File(this.getPhysicalPath(this.url));
OutputStream ro = new FileOutputStream(outFile);
byte[] b = decoder.decodeBuffer(base64Data);
for (int i = 0; i < b.length; ++i) {
if (b[i] < 0) {
b[i] += 256;
}
}
ro.write(b);
ro.flush();
ro.close();
this.state=this.errorInfo.get("SUCCESS");
} catch (Exception e) {
this.state = this.errorInfo.get("IO");
}
}*/
/**
*
*
* @param fileName
* @return
*/
private boolean checkFileType(String fileName) {
return true;
/*
Iterator<String> type = Arrays.asList(this.allowFiles).iterator();
while (type.hasNext()) {
String ext = type.next();
if (fileName.toLowerCase().endsWith(ext)) {
return true;
}
}
return false;
*/
}
/**
*
*
* @return string
*/
private String getFileExt(String fileName) {
return fileName.substring(fileName.lastIndexOf("."));
}
/**
*
* @return
*/
private String getName(String fileName) {
Random random = new Random();
return this.fileName = "" + random.nextInt(10000)
+ System.currentTimeMillis() + this.getFileExt(fileName);
}
/**
*
* @param path
* @return
*/
private String getFolder(String path) {
SimpleDateFormat formater = new SimpleDateFormat("yyyyMMdd");
path += "/" + formater.format(new Date());
File dir = new File(this.getPhysicalPath(path));
System.out.println("path=======>"+path);
System.out.println("dir=======>"+dir);
if (!dir.exists()) {
try {
dir.mkdirs();
} catch (Exception e) {
this.state = this.errorInfo.get("DIR");
return "";
}
}
return path;
}
/**
*
*
* @param path
* @return
*/
private String getPhysicalPath(String path) {
String servletPath = this.request.getServletPath();
String realPath = this.request.getSession().getServletContext()
.getRealPath(servletPath);
return new File(realPath).getParent() +"/" +path;
}
public void setSavePath(String savePath) {
this.savePath = savePath;
}
public void setAllowFiles(String[] allowFiles) {
this.allowFiles = allowFiles;
}
public void setMaxSize(int size) {
this.maxSize = size;
}
public long getSize() {
return this.size;
}
public String getUrl() {
return this.url;
}
public String getFileName() {
return this.fileName;
}
public String getState() {
return this.state;
}
public String getTitle() {
return this.title;
}
public String getType() {
return this.type;
}
public String getOriginalName() {
return this.originalName;
}
}

@ -1,379 +0,0 @@
package com.spring.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import com.alibaba.fastjson.*;
import dao.CommDAO;
import java.util.*;
import util.Info;
import util.DESUtil;
import net.jntoo.db.Query;
import javax.annotation.Resource;
import javax.servlet.http.HttpSession;
import util.Request;
import com.spring.entity.Admins;
import com.spring.service.AdminsService;
import com.spring.entity.Yonghu;
import com.spring.service.YonghuService;
/**
*
*/
@Controller
public class UserController extends BaseController{
@Resource
private AdminsService adminsService;
@Resource
private YonghuService yonghuService;
/**
*
* @return
*/
@RequestMapping("/login")
public String Index()
{
return "login";
}
/**
* 退
* @return
*/
@RequestMapping("/logout")
public String Logout()
{
request.getSession().invalidate();
return showSuccess("退出成功" , "./");
}
/**
*
* @param isAdmin
* @param username
* @param pwd
* @param cx
* @return
*/
protected String authLoginUser(boolean isAdmin,String username , String pwd,String cx)
{
if(username == null || "".equals(username) ){
return showError( "账号不允许为空" );
}
if(pwd == null || "".equals(pwd) ){
return showError( "密码不允许为空" );
}
if(cx == null){
return showError( "请选中登录类型" );
}
String random;
// 获取 token方式的验证码值
if(isAjax() && request.getParameter("captchToken") != null ){
random = DESUtil.decrypt("CaptchControllerPassword" , request.getParameter("captchToken"));
}else{
random = (String) request.getSession().getAttribute("random");
}
String pagerandom = request.getParameter("pagerandom") == null ? "" : request.getParameter("pagerandom");
if (request.getParameter("a") != null && !pagerandom.equals(random)) {
return showError("验证码不正确" , 20);
}
if (cx.equals("管理员")) {
Admins user = adminsService.login(username , pwd);
if(user == null){
return showError("用户名或密码错误");
}
session.setAttribute("id" , user.getId());
session.setAttribute("username" , user.getUsername());
session.setAttribute("cx" , cx);
session.setAttribute("login" , cx);
session.setAttribute("username", user.getUsername());
session.setAttribute("pwd", user.getPwd());
session.setAttribute("addtime", user.getAddtime());
JSONObject jsonObject = JSON.parseObject(JSON.toJSONString(user));
jsonObject.put("cx" , session.getAttribute("cx"));
jsonObject.put("username" , session.getAttribute("username"));
jsonObject.put("login" , session.getAttribute("login"));
assign("session" , jsonObject);
}
if (cx.equals("用户")) {
Yonghu user = yonghuService.login(username , pwd);
if(user == null){
return showError("用户名或密码错误");
}
session.setAttribute("id" , user.getId());
session.setAttribute("username" , user.getYonghuming());
session.setAttribute("cx" , cx);
session.setAttribute("login" , cx);
session.setAttribute("yonghuming", user.getYonghuming());
session.setAttribute("mima", user.getMima());
session.setAttribute("xingming", user.getXingming());
session.setAttribute("xingbie", user.getXingbie());
session.setAttribute("shouji", user.getShouji());
session.setAttribute("youxiang", user.getYouxiang());
session.setAttribute("shenfenzheng", user.getShenfenzheng());
session.setAttribute("touxiang", user.getTouxiang());
session.setAttribute("addtime", user.getAddtime());
JSONObject jsonObject = JSON.parseObject(JSON.toJSONString(user));
jsonObject.put("cx" , session.getAttribute("cx"));
jsonObject.put("username" , session.getAttribute("username"));
jsonObject.put("login" , session.getAttribute("login"));
assign("session" , jsonObject);
}
if(session.getAttribute("username") == null){
return showError("账号或密码错误");
}
String referer = request.getParameter("referer");
if(referer == null){
if(isAdmin){
referer = "./main.do";
}else{
referer = "./";
}
}
assign("token",createToken(
session.getAttribute("cx"),
session.getAttribute("login") ,
session.getAttribute("username"),
_var.get("session")
)
);
if(this.isAjax())
{
return json();
}else{
return showSuccess("登录成功", referer);
}
}
public String createToken(Object cx , Object login, Object username , Object session)
{
String SOURCE_STRING = "0123456789ABCDEFGHIGKLMNOPQRSTUVWXYZ";
String token = createRandomString(SOURCE_STRING,32);
// 删除过期token
new CommDAO().commOper("DELETE FROM token WHERE token_time<'"+ Info.getDateStr()+"'");
HashMap tokenMap = new HashMap();
tokenMap.put("token" , token);
tokenMap.put("cx" , cx);
tokenMap.put("login" , login);
tokenMap.put("username" , username);
tokenMap.put("valueid" , this.session.getAttribute("id"));
// 10天的有效期
tokenMap.put("token_time" , Info.date("yyyy-MM-dd HH:mm:ss" , Info.time() + 86400 * 10));
tokenMap.put("session" , JSON.toJSONString(session));
Query.make("token").add(tokenMap);
return token;
}
/**
* 使token
* @return
*/
@RequestMapping("/tokenLogin")
public String tokenLogin()
{
String token = request.getParameter("token");
HashMap<String , String> tokenInfo = Query.make("token").where("token" , token).where("token_time" , ">" , Info.getDateStr()).find();
if(tokenInfo.isEmpty())
{
return jsonError("token已失效");
}
String cx = tokenInfo.get("login");
Object user = null;
if(cx.equals("管理员"))
{
user = adminsService.find(tokenInfo.get("valueid"));
}
if(cx.equals("用户"))
{
user = yonghuService.find(tokenInfo.get("valueid"));
}
if(user == null){
return jsonError("没找到token中用户");
}
tokenInfo.put("session" , JSON.toJSONString(user));
session.setAttribute("cx" , tokenInfo.get("cx"));
session.setAttribute("login" , tokenInfo.get("login"));
session.setAttribute("username" , tokenInfo.get("username"));
session.setAttribute("id" , tokenInfo.get("valueid"));
JSONObject session1 = JSON.parseObject(tokenInfo.get("session"));
for( Map.Entry<String , Object> entry :session1.entrySet())
{
session.setAttribute(entry.getKey() , entry.getValue());
}
session1.put("cx",tokenInfo.get("cx"));
session1.put("login",tokenInfo.get("login"));
session1.put("username",tokenInfo.get("username"));
assign("token" , token);
assign("session" , session1);
// 刷新token有效期
tokenInfo.put("token_time" , Info.date("yyyy-MM-dd HH:mm:ss" , Info.time() + 86400 * 10));
Query.make("token").where("token" , token).update(tokenInfo);
return json();
}
/**
*
* @param source
* @param length
* @return
*/
private String createRandomString(String source, int length) {
if (this.isNullOrEmpty(source)) {
return "";
}
StringBuffer result = new StringBuffer();
Random random = new Random();
for(int index = 0; index < length; index++) {
result.append(source.charAt(random.nextInt(source.length())));
}
System.out.println(result.toString());
return result.toString();
}
/**
*
* @param target
* @return truefalse
*/
private boolean isNullOrEmpty(String target) {
if (null == target || "".equals(target) || target.isEmpty()) {
return true;
}
return false;
}
/**
*
* @return
*/
@RequestMapping("/main")
public String main() {
return "main";
}
/**
*
* @return
*/
@RequestMapping("/sy")
public String sy() {
return "sy";
}
/**
*
* @return
*/
@RequestMapping("/mygo")
public String mygo() {
return "mygo";
}
/**
*
* @return
*/
@RequestMapping("/top")
public String top() {
return "top";
}
/**
*
* @return
*/
@RequestMapping("/authLogin")
public String authLogin()
{
String username = Request.get("username");
String pwd = Request.get("pwd");
String cx = Request.get("cx");
return authLoginUser(false , username,pwd,cx);
}
/**
*
* @return
*/
@RequestMapping("/authAdminLogin")
public String authAdminLogin()
{
String username = Request.get("username");
String pwd = Request.get("pwd");
String cx = Request.get("cx");
return authLoginUser(true , username,pwd,cx);
}
/**
*
* @return
*/
@RequestMapping("/mod")
public String mod()
{
return "mod";
}
/**
*
* @return
*/
@RequestMapping("/editPassword")
public String editPassword()
{
String username = request.getSession().getAttribute("username").toString();
String cx = request.getSession().getAttribute("login").toString();
String oldPassword = Request.get("oldPassword");
String newPwd = Request.get("newPwd");
String newPwd2 = Request.get("newPwd2");
if(!newPwd.equals(newPwd2)){
return showError("两次密码不一致");
}
if (cx.equals("管理员")) {
Admins user = adminsService.login(username , oldPassword);
if(user == null){
return showError("原密码不正确");
}
adminsService.updatePassword(user.getId() , newPwd);
}
if (cx.equals("用户")) {
Yonghu user = yonghuService.login(username , oldPassword);
if(user == null){
return showError("原密码不正确");
}
yonghuService.updatePassword(user.getId() , newPwd);
}
return showSuccess("修改密码成功" , "./mod.do");
}
}

@ -1,50 +0,0 @@
package com.spring.entity;
import javax.persistence.Column;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
import java.io.Serializable;
import java.util.Date;
import net.jntoo.db.Query;
@Table(name = "xinwenfenlei")
public class Xinwenfenlei implements Serializable {
@GeneratedValue(generator = "JDBC") // 自增的主键映射
@Id
@Column(name = "id",insertable=false)
private Integer id;
@Column(name = "fenleimingcheng")
private String fenleimingcheng;
@Column(name = "addtime")
private String addtime;
private static final long serialVersionUID = 1L;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getFenleimingcheng() {
return fenleimingcheng;
}
public void setFenleimingcheng(String fenleimingcheng) {
this.fenleimingcheng = fenleimingcheng == null ? "" : fenleimingcheng.trim();
}
public String getAddtime() {
return addtime;
}
public void setAddtime(String addtime) {
this.addtime = addtime == null ? "" : addtime.trim();
}
}

@ -1,172 +0,0 @@
package com.spring.controller;
import com.spring.dao.XinwenfenleiMapper;
import com.spring.entity.Xinwenfenlei;
import com.spring.service.XinwenfenleiService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import tk.mybatis.mapper.entity.Example;
import util.Request;
import util.Info;
import dao.Query;
import java.util.*;
import dao.CommDAO;
/**
* */
@Controller
public class XinwenfenleiController extends BaseController
{
@Autowired
private XinwenfenleiMapper dao;
@Autowired
private XinwenfenleiService service;
/**
*
*
*/
@RequestMapping("/xinwenfenlei_list")
public String list()
{
// 检测是否有登录,没登录则跳转到登录页面
if(!checkLogin()){
return showError("尚未登录" , "./login.do");
}
String order = Request.get("order" , "id"); // 获取前台提交的URL参数 order 如果没有则设置为id
String sort = Request.get("sort" , "desc"); // 获取前台提交的URL参数 sort 如果没有则设置为desc
int pagesize = Request.getInt("pagesize" , 12); // 获取前台一页多少行数据
Example example = new Example(Xinwenfenlei.class); // 创建一个扩展搜索类
Example.Criteria criteria = example.createCriteria(); // 创建一个扩展搜索条件类
String where = " 1=1 "; // 创建初始条件为1=1
where += getWhere(); // 从方法中获取url 上的参数,并写成 sql条件语句
criteria.andCondition(where); // 将条件写进上面的扩展条件类中
if(sort.equals("desc")){ // 判断前台提交的sort 参数是否等于 desc倒序 是则使用倒序,否则使用正序
example.orderBy(order).desc(); // 把sql 语句设置成倒序
}else{
example.orderBy(order).asc(); // 把 sql 设置成正序
}
int page = request.getParameter("page") == null ? 1 : Integer.valueOf(request.getParameter("page")); // 获取前台提交的URL参数 page 如果没有则设置为1
page = Math.max(1 , page); // 取两个数的最大值防止page 小于1
List<Xinwenfenlei> list = service.selectPageExample(example , page , pagesize); // 获取当前页的行数
// 将列表写给界面使用
assign("totalCount" , request.getAttribute("totalCount"));
assign("list" , list);
assign("orderby" , order); // 把当前排序结果写进前台
assign("sort" , sort); // 把当前排序结果写进前台
return json(); // 将数据写给前端
}
public String getWhere()
{
_var = new LinkedHashMap(); // 重置数据
String where = " ";
// 以下也是一样的操作判断是否符合条件符合则写入sql 语句
return where;
}
@RequestMapping("/xinwenfenlei_add")
public String add()
{
_var = new LinkedHashMap(); // 重置数据
return json(); // 将数据写给前端
}
@RequestMapping("/xinwenfenlei_updt")
public String updt()
{
_var = new LinkedHashMap(); // 重置数据
int id = Request.getInt("id");
// 获取行数据并赋值给前台jsp页面
Xinwenfenlei mmm = service.find(id);
assign("mmm" , mmm);
assign("updtself" , 0);
return json(); // 将数据写给前端
}
/**
*
* @return
*/
@RequestMapping("/xinwenfenleiinsert")
public String insert()
{
_var = new LinkedHashMap(); // 重置数据
String tmp="";
Xinwenfenlei post = new Xinwenfenlei(); // 创建实体类
// 设置前台提交上来的数据到实体类中
post.setFenleimingcheng(Request.get("fenleimingcheng"));
post.setAddtime(Info.getDateStr());
service.insert(post); // 插入数据
int charuid = post.getId().intValue();
if(isAjax()){
return jsonResult(post);
}
return showSuccess("保存成功" , Request.get("referer").equals("") ? request.getHeader("referer") : Request.get("referer"));
}
/**
*
* @return
*/
@RequestMapping("/xinwenfenleiupdate")
public String update()
{
_var = new LinkedHashMap(); // 重置数据
// 创建实体类
Xinwenfenlei post = new Xinwenfenlei();
// 将前台表单数据填充到实体类
if(!Request.get("fenleimingcheng").equals(""))
post.setFenleimingcheng(Request.get("fenleimingcheng"));
if(!Request.get("addtime").equals(""))
post.setAddtime(Request.get("addtime"));
post.setId(Request.getInt("id"));
service.update(post); // 更新数据
int charuid = post.getId().intValue();
if(isAjax()){
return jsonResult(post);
}
return showSuccess("保存成功" , Request.get("referer")); // 弹出保存成功,并跳转到前台提交的 referer 页面
}
/**
*
*/
@RequestMapping("/xinwenfenlei_delete")
public String delete()
{
_var = new LinkedHashMap(); // 重置数据
if(!checkLogin()){
return showError("尚未登录");
}
int id = Request.getInt("id"); // 根据id 删除某行数据
HashMap map = Query.make("xinwenfenlei").find(id);
service.delete(id);// 根据id 删除某行数据
return showSuccess("删除成功",request.getHeader("referer"));//弹出删除成功,并跳回上一页
}
}

@ -1,11 +0,0 @@
package com.spring.dao;
import com.base.MapperBase;
import com.spring.entity.Xinwenfenlei;
import org.springframework.stereotype.Repository;
@Repository
public interface XinwenfenleiMapper extends MapperBase<Xinwenfenlei> {
}

@ -1,95 +0,0 @@
package com.spring.entity;
import javax.persistence.Column;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
import java.io.Serializable;
import java.util.Date;
import net.jntoo.db.Query;
@Table(name = "xinwenxinxi")
public class Xinwenxinxi implements Serializable {
@GeneratedValue(generator = "JDBC") // 自增的主键映射
@Id
@Column(name = "id",insertable=false)
private Integer id;
@Column(name = "biaoti")
private String biaoti;
@Column(name = "fenlei")
private String fenlei;
@Column(name = "tupian")
private String tupian;
@Column(name = "tianjiaren")
private String tianjiaren;
@Column(name = "dianjilv")
private Integer dianjilv;
@Column(name = "neirong")
private String neirong;
@Column(name = "addtime")
private String addtime;
private static final long serialVersionUID = 1L;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getBiaoti() {
return biaoti;
}
public void setBiaoti(String biaoti) {
this.biaoti = biaoti == null ? "" : biaoti.trim();
}
public String getFenlei() {
return fenlei;
}
public void setFenlei(String fenlei) {
this.fenlei = fenlei == null ? "" : fenlei.trim();
}
public String getTupian() {
return tupian;
}
public void setTupian(String tupian) {
this.tupian = tupian == null ? "" : tupian.trim();
}
public String getTianjiaren() {
return tianjiaren;
}
public void setTianjiaren(String tianjiaren) {
this.tianjiaren = tianjiaren == null ? "" : tianjiaren.trim();
}
public Integer getDianjilv() {
return dianjilv;
}
public void setDianjilv(Integer dianjilv) {
this.dianjilv = dianjilv == null ? 0 : dianjilv;
}
public String getNeirong() {
return neirong;
}
public void setNeirong(String neirong) {
this.neirong = neirong == null ? "" : neirong.trim();
}
public String getAddtime() {
return addtime;
}
public void setAddtime(String addtime) {
this.addtime = addtime == null ? "" : addtime.trim();
}
}

@ -1,314 +0,0 @@
package com.spring.controller;
import com.spring.dao.XinwenxinxiMapper;
import com.spring.entity.Xinwenxinxi;
import com.spring.service.XinwenxinxiService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import tk.mybatis.mapper.entity.Example;
import util.Request;
import util.Info;
import dao.Query;
import java.util.*;
import dao.CommDAO;
/**
* */
@Controller
public class XinwenxinxiController extends BaseController
{
@Autowired
private XinwenxinxiMapper dao;
@Autowired
private XinwenxinxiService service;
/**
*
*
*/
@RequestMapping("/xinwenxinxi_list")
public String list()
{
// 检测是否有登录,没登录则跳转到登录页面
if(!checkLogin()){
return showError("尚未登录" , "./login.do");
}
String order = Request.get("order" , "id"); // 获取前台提交的URL参数 order 如果没有则设置为id
String sort = Request.get("sort" , "desc"); // 获取前台提交的URL参数 sort 如果没有则设置为desc
int pagesize = Request.getInt("pagesize" , 12); // 获取前台一页多少行数据
Example example = new Example(Xinwenxinxi.class); // 创建一个扩展搜索类
Example.Criteria criteria = example.createCriteria(); // 创建一个扩展搜索条件类
String where = " 1=1 "; // 创建初始条件为1=1
where += getWhere(); // 从方法中获取url 上的参数,并写成 sql条件语句
criteria.andCondition(where); // 将条件写进上面的扩展条件类中
if(sort.equals("desc")){ // 判断前台提交的sort 参数是否等于 desc倒序 是则使用倒序,否则使用正序
example.orderBy(order).desc(); // 把sql 语句设置成倒序
}else{
example.orderBy(order).asc(); // 把 sql 设置成正序
}
int page = request.getParameter("page") == null ? 1 : Integer.valueOf(request.getParameter("page")); // 获取前台提交的URL参数 page 如果没有则设置为1
page = Math.max(1 , page); // 取两个数的最大值防止page 小于1
List<Xinwenxinxi> list = service.selectPageExample(example , page , pagesize); // 获取当前页的行数
assign("xinwenfenleiList" , new CommDAO().select("SELECT * FROM xinwenfenlei ORDER BY id desc"));
// 将列表写给界面使用
assign("totalCount" , request.getAttribute("totalCount"));
assign("list" , list);
assign("orderby" , order); // 把当前排序结果写进前台
assign("sort" , sort); // 把当前排序结果写进前台
return json(); // 将数据写给前端
}
public String getWhere()
{
_var = new LinkedHashMap(); // 重置数据
String where = " ";
// 以下也是一样的操作判断是否符合条件符合则写入sql 语句
if(!Request.get("biaoti").equals("")) {
where += " AND biaoti LIKE '%"+Request.get("biaoti")+"%' ";
}
if(!Request.get("fenlei").equals("")) {
where += " AND fenlei ='"+Request.get("fenlei")+"' ";
}
if(!Request.get("tianjiaren").equals("")) {
where += " AND tianjiaren LIKE '%"+Request.get("tianjiaren")+"%' ";
}
if(!Request.get("dianjilv_start").equals("")) {
where += " AND dianjilv >='"+Request.get("dianjilv_start")+"' ";
}
if(!Request.get("dianjilv_end").equals("")) {
where += " AND dianjilv <= '"+Request.get("dianjilv_end")+"' ";
}
if(!Request.get("neirong").equals("")) {
where += " AND neirong LIKE '%"+Request.get("neirong")+"%' ";
}
return where;
}
/**
*
*/
@RequestMapping("/xinwenxinxi_list_tianjiaren")
public String listtianjiaren()
{
// 检测是否有登录,没登录则跳转到登录页面
if(!checkLogin()){
return showError("尚未登录" , "./login.do");
}
String order = Request.get("order" , "id"); // 获取前台提交的URL参数 order 如果没有则设置为id
String sort = Request.get("sort" , "desc"); // 获取前台提交的URL参数 sort 如果没有则设置为desc
int pagesize = Request.getInt("pagesize" , 12); // 获取前台一页多少行数据
Example example = new Example(Xinwenxinxi.class); // 创建一个扩展搜索类
Example.Criteria criteria = example.createCriteria(); // 创建一个扩展搜索条件类
// 初始化一个条件,条件为:添加人=当前登录用户
String where = " tianjiaren='"+request.getSession().getAttribute("username")+"' ";
where += getWhere();
criteria.andCondition(where); // 将条件写入
if(sort.equals("desc")){ // 注释同list
example.orderBy(order).desc(); // 注释同list
}else{
example.orderBy(order).asc(); // 注释同list
}
int page = request.getParameter("page") == null ? 1 : Integer.valueOf(request.getParameter("page")); // 注释同list
page = Math.max(1 , page); // 注释同list
List<Xinwenxinxi> list = service.selectPageExample(example , page , pagesize);
assign("xinwenfenleiList" , new CommDAO().select("SELECT * FROM xinwenfenlei ORDER BY id desc")); assign("totalCount" , request.getAttribute("totalCount"));
assign("list" , list);
assign("orderby" , order);
assign("sort" , sort);
return json(); // 将数据写给前端
}
/**
*
*
*/
@RequestMapping("/xinwenxinxilist")
public String index()
{
String order = Request.get("order" , "id");
String sort = Request.get("sort" , "desc");
Example example = new Example(Xinwenxinxi.class);
Example.Criteria criteria = example.createCriteria();
String where = " 1=1 ";
where += getWhere();
criteria.andCondition(where);
if(sort.equals("desc")){
example.orderBy(order).desc();
}else{
example.orderBy(order).asc();
}
int page = request.getParameter("page") == null ? 1 : Integer.valueOf(request.getParameter("page"));
page = Math.max(1 , page);
List<Xinwenxinxi> list = service.selectPageExample(example , page , 12);
assign("mapxinwenfenlei3" , new CommDAO().select("SELECT id,fenleimingcheng FROM xinwenfenlei")); assign("totalCount" , request.getAttribute("totalCount"));
assign("list" , list);
assign("where" , where);
assign("orderby" , order);
assign("sort" , sort);
return json();
}
@RequestMapping("/xinwenxinxi_add")
public String add()
{
_var = new LinkedHashMap(); // 重置数据
assign("xinwenfenleiList" , new CommDAO().select("SELECT * FROM xinwenfenlei ORDER BY id desc"));
return json(); // 将数据写给前端
}
@RequestMapping("/xinwenxinxi_updt")
public String updt()
{
_var = new LinkedHashMap(); // 重置数据
int id = Request.getInt("id");
// 获取行数据并赋值给前台jsp页面
Xinwenxinxi mmm = service.find(id);
assign("mmm" , mmm);
assign("updtself" , 0);
assign("xinwenfenleiList" , new CommDAO().select("SELECT * FROM xinwenfenlei ORDER BY id desc"));
return json(); // 将数据写给前端
}
/**
*
* @return
*/
@RequestMapping("/xinwenxinxiinsert")
public String insert()
{
_var = new LinkedHashMap(); // 重置数据
String tmp="";
Xinwenxinxi post = new Xinwenxinxi(); // 创建实体类
// 设置前台提交上来的数据到实体类中
post.setBiaoti(Request.get("biaoti"));
post.setFenlei(Request.get("fenlei"));
post.setTupian(Request.get("tupian"));
post.setTianjiaren(Request.get("tianjiaren"));
post.setDianjilv(Request.getInt("dianjilv"));
post.setNeirong(util.DownloadRemoteImage.run(Request.get("neirong")));
post.setAddtime(Info.getDateStr());
service.insert(post); // 插入数据
int charuid = post.getId().intValue();
if(isAjax()){
return jsonResult(post);
}
return showSuccess("保存成功" , Request.get("referer").equals("") ? request.getHeader("referer") : Request.get("referer"));
}
/**
*
* @return
*/
@RequestMapping("/xinwenxinxiupdate")
public String update()
{
_var = new LinkedHashMap(); // 重置数据
// 创建实体类
Xinwenxinxi post = new Xinwenxinxi();
// 将前台表单数据填充到实体类
if(!Request.get("biaoti").equals(""))
post.setBiaoti(Request.get("biaoti"));
if(!Request.get("fenlei").equals(""))
post.setFenlei(Request.get("fenlei"));
if(!Request.get("tupian").equals(""))
post.setTupian(Request.get("tupian"));
if(!Request.get("tianjiaren").equals(""))
post.setTianjiaren(Request.get("tianjiaren"));
if(!Request.get("dianjilv").equals(""))
post.setDianjilv(Request.getInt("dianjilv"));
if(!Request.get("neirong").equals(""))
post.setNeirong(util.DownloadRemoteImage.run(Request.get("neirong")));
if(!Request.get("addtime").equals(""))
post.setAddtime(Request.get("addtime"));
post.setId(Request.getInt("id"));
service.update(post); // 更新数据
int charuid = post.getId().intValue();
if(isAjax()){
return jsonResult(post);
}
return showSuccess("保存成功" , Request.get("referer")); // 弹出保存成功,并跳转到前台提交的 referer 页面
}
/**
*
*/
@RequestMapping("/xinwenxinxi_detail")
public String detail()
{
_var = new LinkedHashMap(); // 重置数据
int id = Request.getInt("id");
Xinwenxinxi map = service.find(id); // 根据前台url 参数中的id获取行数据
assign("map" , map); // 把数据写到前台
return json(); // 将数据写给前端
}
/**
*
*/
@RequestMapping("/xinwenxinxidetail")
public String detailweb()
{
_var = new LinkedHashMap(); // 重置数据
int id = Request.getInt("id");
Xinwenxinxi map = service.find(id);
Query.execute("UPDATE xinwenxinxi SET dianjilv=dianjilv+1 WHERE id="+request.getParameter("id")+"");
if(!checkLogin()){
assign("isCollect" , false);
}else{
assign("isCollect" , Query.make("shoucangjilu").where("username",session.getAttribute("username")).where("biao" , "xinwenxinxi").where("xwid",id).count()>0);
}
assign("map" , map);
return json(); // 将数据写给前端
}
/**
*
*/
@RequestMapping("/xinwenxinxi_delete")
public String delete()
{
_var = new LinkedHashMap(); // 重置数据
if(!checkLogin()){
return showError("尚未登录");
}
int id = Request.getInt("id"); // 根据id 删除某行数据
HashMap map = Query.make("xinwenxinxi").find(id);
service.delete(id);// 根据id 删除某行数据
return showSuccess("删除成功",request.getHeader("referer"));//弹出删除成功,并跳回上一页
}
}

@ -1,11 +0,0 @@
package com.spring.dao;
import com.base.MapperBase;
import com.spring.entity.Xinwenxinxi;
import org.springframework.stereotype.Repository;
@Repository
public interface XinwenxinxiMapper extends MapperBase<Xinwenxinxi> {
}

@ -1,113 +0,0 @@
package com.spring.entity;
import javax.persistence.Column;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
import java.io.Serializable;
import java.util.Date;
import net.jntoo.db.Query;
@Table(name = "yonghu")
public class Yonghu implements Serializable {
@GeneratedValue(generator = "JDBC") // 自增的主键映射
@Id
@Column(name = "id",insertable=false)
private Integer id;
@Column(name = "yonghuming")
private String yonghuming;
@Column(name = "mima")
private String mima;
@Column(name = "xingming")
private String xingming;
@Column(name = "xingbie")
private String xingbie;
@Column(name = "shouji")
private String shouji;
@Column(name = "youxiang")
private String youxiang;
@Column(name = "shenfenzheng")
private String shenfenzheng;
@Column(name = "touxiang")
private String touxiang;
@Column(name = "addtime")
private String addtime;
private static final long serialVersionUID = 1L;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getYonghuming() {
return yonghuming;
}
public void setYonghuming(String yonghuming) {
this.yonghuming = yonghuming == null ? "" : yonghuming.trim();
}
public String getMima() {
return mima;
}
public void setMima(String mima) {
this.mima = mima == null ? "" : mima.trim();
}
public String getXingming() {
return xingming;
}
public void setXingming(String xingming) {
this.xingming = xingming == null ? "" : xingming.trim();
}
public String getXingbie() {
return xingbie;
}
public void setXingbie(String xingbie) {
this.xingbie = xingbie == null ? "" : xingbie.trim();
}
public String getShouji() {
return shouji;
}
public void setShouji(String shouji) {
this.shouji = shouji == null ? "" : shouji.trim();
}
public String getYouxiang() {
return youxiang;
}
public void setYouxiang(String youxiang) {
this.youxiang = youxiang == null ? "" : youxiang.trim();
}
public String getShenfenzheng() {
return shenfenzheng;
}
public void setShenfenzheng(String shenfenzheng) {
this.shenfenzheng = shenfenzheng == null ? "" : shenfenzheng.trim();
}
public String getTouxiang() {
return touxiang;
}
public void setTouxiang(String touxiang) {
this.touxiang = touxiang == null ? "" : touxiang.trim();
}
public String getAddtime() {
return addtime;
}
public void setAddtime(String addtime) {
this.addtime = addtime == null ? "" : addtime.trim();
}
}

@ -1,229 +0,0 @@
package com.spring.controller;
import com.spring.dao.YonghuMapper;
import com.spring.entity.Yonghu;
import com.spring.service.YonghuService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import tk.mybatis.mapper.entity.Example;
import util.Request;
import util.Info;
import dao.Query;
import java.util.*;
import dao.CommDAO;
/**
* */
@Controller
public class YonghuController extends BaseController
{
@Autowired
private YonghuMapper dao;
@Autowired
private YonghuService service;
/**
*
*
*/
@RequestMapping("/yonghu_list")
public String list()
{
// 检测是否有登录,没登录则跳转到登录页面
if(!checkLogin()){
return showError("尚未登录" , "./login.do");
}
String order = Request.get("order" , "id"); // 获取前台提交的URL参数 order 如果没有则设置为id
String sort = Request.get("sort" , "desc"); // 获取前台提交的URL参数 sort 如果没有则设置为desc
int pagesize = Request.getInt("pagesize" , 12); // 获取前台一页多少行数据
Example example = new Example(Yonghu.class); // 创建一个扩展搜索类
Example.Criteria criteria = example.createCriteria(); // 创建一个扩展搜索条件类
String where = " 1=1 "; // 创建初始条件为1=1
where += getWhere(); // 从方法中获取url 上的参数,并写成 sql条件语句
criteria.andCondition(where); // 将条件写进上面的扩展条件类中
if(sort.equals("desc")){ // 判断前台提交的sort 参数是否等于 desc倒序 是则使用倒序,否则使用正序
example.orderBy(order).desc(); // 把sql 语句设置成倒序
}else{
example.orderBy(order).asc(); // 把 sql 设置成正序
}
int page = request.getParameter("page") == null ? 1 : Integer.valueOf(request.getParameter("page")); // 获取前台提交的URL参数 page 如果没有则设置为1
page = Math.max(1 , page); // 取两个数的最大值防止page 小于1
List<Yonghu> list = service.selectPageExample(example , page , pagesize); // 获取当前页的行数
// 将列表写给界面使用
assign("totalCount" , request.getAttribute("totalCount"));
assign("list" , list);
assign("orderby" , order); // 把当前排序结果写进前台
assign("sort" , sort); // 把当前排序结果写进前台
return json(); // 将数据写给前端
}
public String getWhere()
{
_var = new LinkedHashMap(); // 重置数据
String where = " ";
// 以下也是一样的操作判断是否符合条件符合则写入sql 语句
if(!Request.get("yonghuming").equals("")) {
where += " AND yonghuming LIKE '%"+Request.get("yonghuming")+"%' ";
}
if(!Request.get("xingming").equals("")) {
where += " AND xingming LIKE '%"+Request.get("xingming")+"%' ";
}
if(!Request.get("xingbie").equals("")) {
where += " AND xingbie ='"+Request.get("xingbie")+"' ";
}
if(!Request.get("shouji").equals("")) {
where += " AND shouji LIKE '%"+Request.get("shouji")+"%' ";
}
if(!Request.get("shenfenzheng").equals("")) {
where += " AND shenfenzheng LIKE '%"+Request.get("shenfenzheng")+"%' ";
}
return where;
}
@RequestMapping("/yonghu_add")
public String add()
{
_var = new LinkedHashMap(); // 重置数据
return json(); // 将数据写给前端
}
@RequestMapping("/yonghu_updt")
public String updt()
{
_var = new LinkedHashMap(); // 重置数据
int id = Request.getInt("id");
// 获取行数据并赋值给前台jsp页面
Yonghu mmm = service.find(id);
assign("mmm" , mmm);
assign("updtself" , 0);
return json(); // 将数据写给前端
}
@RequestMapping("/yonghu_updtself")
public String updtself()
{
_var = new LinkedHashMap(); // 重置数据
// 更新个人资料
int id = (int)request.getSession().getAttribute("id");
Yonghu mmm = service.find(id);
assign("mmm" , mmm);
assign("updtself" , 1);
return json(); // 将数据写给前端
}
/**
*
* @return
*/
@RequestMapping("/yonghuinsert")
public String insert()
{
_var = new LinkedHashMap(); // 重置数据
String tmp="";
Yonghu post = new Yonghu(); // 创建实体类
// 设置前台提交上来的数据到实体类中
post.setYonghuming(Request.get("yonghuming"));
post.setMima(Request.get("mima"));
post.setXingming(Request.get("xingming"));
post.setXingbie(Request.get("xingbie"));
post.setShouji(Request.get("shouji"));
post.setYouxiang(Request.get("youxiang"));
post.setShenfenzheng(Request.get("shenfenzheng"));
post.setTouxiang(Request.get("touxiang"));
post.setAddtime(Info.getDateStr());
service.insert(post); // 插入数据
int charuid = post.getId().intValue();
if(isAjax()){
return jsonResult(post);
}
return showSuccess("保存成功" , Request.get("referer").equals("") ? request.getHeader("referer") : Request.get("referer"));
}
/**
*
* @return
*/
@RequestMapping("/yonghuupdate")
public String update()
{
_var = new LinkedHashMap(); // 重置数据
// 创建实体类
Yonghu post = new Yonghu();
// 将前台表单数据填充到实体类
if(!Request.get("yonghuming").equals(""))
post.setYonghuming(Request.get("yonghuming"));
if(!Request.get("mima").equals(""))
post.setMima(Request.get("mima"));
if(!Request.get("xingming").equals(""))
post.setXingming(Request.get("xingming"));
if(!Request.get("xingbie").equals(""))
post.setXingbie(Request.get("xingbie"));
if(!Request.get("shouji").equals(""))
post.setShouji(Request.get("shouji"));
if(!Request.get("youxiang").equals(""))
post.setYouxiang(Request.get("youxiang"));
if(!Request.get("shenfenzheng").equals(""))
post.setShenfenzheng(Request.get("shenfenzheng"));
if(!Request.get("touxiang").equals(""))
post.setTouxiang(Request.get("touxiang"));
if(!Request.get("addtime").equals(""))
post.setAddtime(Request.get("addtime"));
post.setId(Request.getInt("id"));
service.update(post); // 更新数据
int charuid = post.getId().intValue();
if(isAjax()){
return jsonResult(post);
}
if(Request.getInt("updtself") == 1){
return showSuccess("保存成功" , "yonghu_updtself.do");
}
return showSuccess("保存成功" , Request.get("referer")); // 弹出保存成功,并跳转到前台提交的 referer 页面
}
/**
*
*/
@RequestMapping("/yonghu_delete")
public String delete()
{
_var = new LinkedHashMap(); // 重置数据
if(!checkLogin()){
return showError("尚未登录");
}
int id = Request.getInt("id"); // 根据id 删除某行数据
HashMap map = Query.make("yonghu").find(id);
service.delete(id);// 根据id 删除某行数据
return showSuccess("删除成功",request.getHeader("referer"));//弹出删除成功,并跳回上一页
}
}

@ -1,12 +0,0 @@
package com.spring.dao;
import com.base.MapperBase;
import com.spring.entity.Yonghu;
import org.springframework.stereotype.Repository;
@Repository
public interface YonghuMapper extends MapperBase<Yonghu> {
Yonghu login(Yonghu yonghu);
}

@ -1,59 +0,0 @@
package com.spring.entity;
import javax.persistence.Column;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
import java.io.Serializable;
import java.util.Date;
import net.jntoo.db.Query;
@Table(name = "youqinglianjie")
public class Youqinglianjie implements Serializable {
@GeneratedValue(generator = "JDBC") // 自增的主键映射
@Id
@Column(name = "id",insertable=false)
private Integer id;
@Column(name = "wangzhanmingcheng")
private String wangzhanmingcheng;
@Column(name = "wangzhi")
private String wangzhi;
@Column(name = "addtime")
private String addtime;
private static final long serialVersionUID = 1L;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getWangzhanmingcheng() {
return wangzhanmingcheng;
}
public void setWangzhanmingcheng(String wangzhanmingcheng) {
this.wangzhanmingcheng = wangzhanmingcheng == null ? "" : wangzhanmingcheng.trim();
}
public String getWangzhi() {
return wangzhi;
}
public void setWangzhi(String wangzhi) {
this.wangzhi = wangzhi == null ? "" : wangzhi.trim();
}
public String getAddtime() {
return addtime;
}
public void setAddtime(String addtime) {
this.addtime = addtime == null ? "" : addtime.trim();
}
}

@ -1,176 +0,0 @@
package com.spring.controller;
import com.spring.dao.YouqinglianjieMapper;
import com.spring.entity.Youqinglianjie;
import com.spring.service.YouqinglianjieService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import tk.mybatis.mapper.entity.Example;
import util.Request;
import util.Info;
import dao.Query;
import java.util.*;
import dao.CommDAO;
/**
* */
@Controller
public class YouqinglianjieController extends BaseController
{
@Autowired
private YouqinglianjieMapper dao;
@Autowired
private YouqinglianjieService service;
/**
*
*
*/
@RequestMapping("/youqinglianjie_list")
public String list()
{
// 检测是否有登录,没登录则跳转到登录页面
if(!checkLogin()){
return showError("尚未登录" , "./login.do");
}
String order = Request.get("order" , "id"); // 获取前台提交的URL参数 order 如果没有则设置为id
String sort = Request.get("sort" , "desc"); // 获取前台提交的URL参数 sort 如果没有则设置为desc
int pagesize = Request.getInt("pagesize" , 12); // 获取前台一页多少行数据
Example example = new Example(Youqinglianjie.class); // 创建一个扩展搜索类
Example.Criteria criteria = example.createCriteria(); // 创建一个扩展搜索条件类
String where = " 1=1 "; // 创建初始条件为1=1
where += getWhere(); // 从方法中获取url 上的参数,并写成 sql条件语句
criteria.andCondition(where); // 将条件写进上面的扩展条件类中
if(sort.equals("desc")){ // 判断前台提交的sort 参数是否等于 desc倒序 是则使用倒序,否则使用正序
example.orderBy(order).desc(); // 把sql 语句设置成倒序
}else{
example.orderBy(order).asc(); // 把 sql 设置成正序
}
int page = request.getParameter("page") == null ? 1 : Integer.valueOf(request.getParameter("page")); // 获取前台提交的URL参数 page 如果没有则设置为1
page = Math.max(1 , page); // 取两个数的最大值防止page 小于1
List<Youqinglianjie> list = service.selectPageExample(example , page , pagesize); // 获取当前页的行数
// 将列表写给界面使用
assign("totalCount" , request.getAttribute("totalCount"));
assign("list" , list);
assign("orderby" , order); // 把当前排序结果写进前台
assign("sort" , sort); // 把当前排序结果写进前台
return json(); // 将数据写给前端
}
public String getWhere()
{
_var = new LinkedHashMap(); // 重置数据
String where = " ";
// 以下也是一样的操作判断是否符合条件符合则写入sql 语句
return where;
}
@RequestMapping("/youqinglianjie_add")
public String add()
{
_var = new LinkedHashMap(); // 重置数据
return json(); // 将数据写给前端
}
@RequestMapping("/youqinglianjie_updt")
public String updt()
{
_var = new LinkedHashMap(); // 重置数据
int id = Request.getInt("id");
// 获取行数据并赋值给前台jsp页面
Youqinglianjie mmm = service.find(id);
assign("mmm" , mmm);
assign("updtself" , 0);
return json(); // 将数据写给前端
}
/**
*
* @return
*/
@RequestMapping("/youqinglianjieinsert")
public String insert()
{
_var = new LinkedHashMap(); // 重置数据
String tmp="";
Youqinglianjie post = new Youqinglianjie(); // 创建实体类
// 设置前台提交上来的数据到实体类中
post.setWangzhanmingcheng(Request.get("wangzhanmingcheng"));
post.setWangzhi(Request.get("wangzhi"));
post.setAddtime(Info.getDateStr());
service.insert(post); // 插入数据
int charuid = post.getId().intValue();
if(isAjax()){
return jsonResult(post);
}
return showSuccess("保存成功" , Request.get("referer").equals("") ? request.getHeader("referer") : Request.get("referer"));
}
/**
*
* @return
*/
@RequestMapping("/youqinglianjieupdate")
public String update()
{
_var = new LinkedHashMap(); // 重置数据
// 创建实体类
Youqinglianjie post = new Youqinglianjie();
// 将前台表单数据填充到实体类
if(!Request.get("wangzhanmingcheng").equals(""))
post.setWangzhanmingcheng(Request.get("wangzhanmingcheng"));
if(!Request.get("wangzhi").equals(""))
post.setWangzhi(Request.get("wangzhi"));
if(!Request.get("addtime").equals(""))
post.setAddtime(Request.get("addtime"));
post.setId(Request.getInt("id"));
service.update(post); // 更新数据
int charuid = post.getId().intValue();
if(isAjax()){
return jsonResult(post);
}
return showSuccess("保存成功" , Request.get("referer")); // 弹出保存成功,并跳转到前台提交的 referer 页面
}
/**
*
*/
@RequestMapping("/youqinglianjie_delete")
public String delete()
{
_var = new LinkedHashMap(); // 重置数据
if(!checkLogin()){
return showError("尚未登录");
}
int id = Request.getInt("id"); // 根据id 删除某行数据
HashMap map = Query.make("youqinglianjie").find(id);
service.delete(id);// 根据id 删除某行数据
return showSuccess("删除成功",request.getHeader("referer"));//弹出删除成功,并跳回上一页
}
}

@ -1,11 +0,0 @@
package com.spring.dao;
import com.base.MapperBase;
import com.spring.entity.Youqinglianjie;
import org.springframework.stereotype.Repository;
@Repository
public interface YouqinglianjieMapper extends MapperBase<Youqinglianjie> {
}

@ -1,174 +0,0 @@
package com.spring.entity;
import javax.persistence.Column;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
import java.io.Serializable;
import java.util.Date;
import net.jntoo.db.Query;
@Table(name = "yuding")
public class Yuding implements Serializable {
@GeneratedValue(generator = "JDBC") // 自增的主键映射
@Id
@Column(name = "id",insertable=false)
private Integer id;
@Column(name = "lvyouxianluid")
private Integer lvyouxianluid;
@Column(name = "xianlubianhao")
private String xianlubianhao;
@Column(name = "xianlumingcheng")
private String xianlumingcheng;
@Column(name = "chufadi")
private String chufadi;
@Column(name = "tujingdi")
private String tujingdi;
@Column(name = "zhongdian")
private String zhongdian;
@Column(name = "jiage")
private Double jiage;
@Column(name = "dingdanhao")
private String dingdanhao;
@Column(name = "yudingshijian")
private String yudingshijian;
@Column(name = "yudingrenxingming")
private String yudingrenxingming;
@Column(name = "lianxifangshi")
private String lianxifangshi;
@Column(name = "zhuangtai")
private String zhuangtai;
@Column(name = "beizhu")
private String beizhu;
@Column(name = "yudingren")
private String yudingren;
@Column(name = "addtime")
private String addtime;
private String iszf;
private static final long serialVersionUID = 1L;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public Integer getLvyouxianluid() {
return lvyouxianluid;
}
public void setLvyouxianluid(Integer lvyouxianluid) {
this.lvyouxianluid = lvyouxianluid == null ? 0 : lvyouxianluid;
}
public String getXianlubianhao() {
return xianlubianhao;
}
public void setXianlubianhao(String xianlubianhao) {
this.xianlubianhao = xianlubianhao == null ? "" : xianlubianhao.trim();
}
public String getXianlumingcheng() {
return xianlumingcheng;
}
public void setXianlumingcheng(String xianlumingcheng) {
this.xianlumingcheng = xianlumingcheng == null ? "" : xianlumingcheng.trim();
}
public String getChufadi() {
return chufadi;
}
public void setChufadi(String chufadi) {
this.chufadi = chufadi == null ? "" : chufadi.trim();
}
public String getTujingdi() {
return tujingdi;
}
public void setTujingdi(String tujingdi) {
this.tujingdi = tujingdi == null ? "" : tujingdi.trim();
}
public String getZhongdian() {
return zhongdian;
}
public void setZhongdian(String zhongdian) {
this.zhongdian = zhongdian == null ? "" : zhongdian.trim();
}
public Double getJiage() {
return jiage;
}
public void setJiage(Double jiage) {
this.jiage = jiage == null ? 0.0f : jiage;
}
public String getDingdanhao() {
return dingdanhao;
}
public void setDingdanhao(String dingdanhao) {
this.dingdanhao = dingdanhao == null ? "" : dingdanhao.trim();
}
public String getYudingshijian() {
return yudingshijian;
}
public void setYudingshijian(String yudingshijian) {
this.yudingshijian = yudingshijian == null ? "" : yudingshijian.trim();
}
public String getYudingrenxingming() {
return yudingrenxingming;
}
public void setYudingrenxingming(String yudingrenxingming) {
this.yudingrenxingming = yudingrenxingming == null ? "" : yudingrenxingming.trim();
}
public String getLianxifangshi() {
return lianxifangshi;
}
public void setLianxifangshi(String lianxifangshi) {
this.lianxifangshi = lianxifangshi == null ? "" : lianxifangshi.trim();
}
public String getZhuangtai() {
return zhuangtai;
}
public void setZhuangtai(String zhuangtai) {
this.zhuangtai = zhuangtai == null ? "" : zhuangtai.trim();
}
public String getBeizhu() {
return beizhu;
}
public void setBeizhu(String beizhu) {
this.beizhu = beizhu == null ? "" : beizhu.trim();
}
public String getYudingren() {
return yudingren;
}
public void setYudingren(String yudingren) {
this.yudingren = yudingren == null ? "" : yudingren.trim();
}
public String getAddtime() {
return addtime;
}
public void setAddtime(String addtime) {
this.addtime = addtime == null ? "" : addtime.trim();
}
public String getIszf() {
return iszf;
}
public void setIszf(String iszf) {
this.iszf = iszf == null ? "" : iszf.trim();
}
}

@ -1,289 +0,0 @@
package com.spring.controller;
import com.spring.dao.YudingMapper;
import com.spring.entity.Yuding;
import com.spring.service.YudingService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import tk.mybatis.mapper.entity.Example;
import util.Request;
import util.Info;
import dao.Query;
import java.util.*;
import dao.CommDAO;
import com.spring.entity.Lvyouxianlu;
import com.spring.service.LvyouxianluService;
/**
* */
@Controller
public class YudingController extends BaseController
{
@Autowired
private YudingMapper dao;
@Autowired
private YudingService service;
@Autowired
private LvyouxianluService serviceRead;
/**
*
*
*/
@RequestMapping("/yuding_list")
public String list()
{
// 检测是否有登录,没登录则跳转到登录页面
if(!checkLogin()){
return showError("尚未登录" , "./login.do");
}
String order = Request.get("order" , "id"); // 获取前台提交的URL参数 order 如果没有则设置为id
String sort = Request.get("sort" , "desc"); // 获取前台提交的URL参数 sort 如果没有则设置为desc
int pagesize = Request.getInt("pagesize" , 12); // 获取前台一页多少行数据
Example example = new Example(Yuding.class); // 创建一个扩展搜索类
Example.Criteria criteria = example.createCriteria(); // 创建一个扩展搜索条件类
String where = " 1=1 "; // 创建初始条件为1=1
where += getWhere(); // 从方法中获取url 上的参数,并写成 sql条件语句
criteria.andCondition(where); // 将条件写进上面的扩展条件类中
if(sort.equals("desc")){ // 判断前台提交的sort 参数是否等于 desc倒序 是则使用倒序,否则使用正序
example.orderBy(order).desc(); // 把sql 语句设置成倒序
}else{
example.orderBy(order).asc(); // 把 sql 设置成正序
}
int page = request.getParameter("page") == null ? 1 : Integer.valueOf(request.getParameter("page")); // 获取前台提交的URL参数 page 如果没有则设置为1
page = Math.max(1 , page); // 取两个数的最大值防止page 小于1
List<Yuding> list = service.selectPageExample(example , page , pagesize); // 获取当前页的行数
// 将列表写给界面使用
assign("totalCount" , request.getAttribute("totalCount"));
assign("list" , list);
assign("orderby" , order); // 把当前排序结果写进前台
assign("sort" , sort); // 把当前排序结果写进前台
return json(); // 将数据写给前端
}
public String getWhere()
{
_var = new LinkedHashMap(); // 重置数据
String where = " ";
// 判断URL 参数lvyouxianluid是否大于0
if( Request.getInt("lvyouxianluid") > 0 ) {
// 大于0 则写入条件
where += " AND lvyouxianluid='"+Request.getInt("lvyouxianluid")+"' ";
}
// 以下也是一样的操作判断是否符合条件符合则写入sql 语句
if(!Request.get("xianlubianhao").equals("")) {
where += " AND xianlubianhao LIKE '%"+Request.get("xianlubianhao")+"%' ";
}
if(!Request.get("xianlumingcheng").equals("")) {
where += " AND xianlumingcheng LIKE '%"+Request.get("xianlumingcheng")+"%' ";
}
if(!Request.get("tujingdi").equals("")) {
where += " AND tujingdi LIKE '%"+Request.get("tujingdi")+"%' ";
}
return where;
}
/**
*
*/
@RequestMapping("/yuding_list_yudingren")
public String listyudingren()
{
// 检测是否有登录,没登录则跳转到登录页面
if(!checkLogin()){
return showError("尚未登录" , "./login.do");
}
String order = Request.get("order" , "id"); // 获取前台提交的URL参数 order 如果没有则设置为id
String sort = Request.get("sort" , "desc"); // 获取前台提交的URL参数 sort 如果没有则设置为desc
int pagesize = Request.getInt("pagesize" , 12); // 获取前台一页多少行数据
Example example = new Example(Yuding.class); // 创建一个扩展搜索类
Example.Criteria criteria = example.createCriteria(); // 创建一个扩展搜索条件类
// 初始化一个条件,条件为:预订人=当前登录用户
String where = " yudingren='"+request.getSession().getAttribute("username")+"' ";
where += getWhere();
criteria.andCondition(where); // 将条件写入
if(sort.equals("desc")){ // 注释同list
example.orderBy(order).desc(); // 注释同list
}else{
example.orderBy(order).asc(); // 注释同list
}
int page = request.getParameter("page") == null ? 1 : Integer.valueOf(request.getParameter("page")); // 注释同list
page = Math.max(1 , page); // 注释同list
List<Yuding> list = service.selectPageExample(example , page , pagesize);
assign("totalCount" , request.getAttribute("totalCount"));
assign("list" , list);
assign("orderby" , order);
assign("sort" , sort);
return json(); // 将数据写给前端
}
@RequestMapping("/yuding_add")
public String add()
{
_var = new LinkedHashMap(); // 重置数据
int id = Request.getInt("id"); // 根据id 获取 旅游线路模块中的数据
Lvyouxianlu readMap = serviceRead.find(id);
// 将数据行写入给前台jsp页面
assign("readMap" , readMap);
return json(); // 将数据写给前端
}
@RequestMapping("/yuding_updt")
public String updt()
{
_var = new LinkedHashMap(); // 重置数据
int id = Request.getInt("id");
// 获取行数据并赋值给前台jsp页面
Yuding mmm = service.find(id);
assign("mmm" , mmm);
assign("updtself" , 0);
return json(); // 将数据写给前端
}
/**
*
* @return
*/
@RequestMapping("/yudinginsert")
public String insert()
{
_var = new LinkedHashMap(); // 重置数据
String tmp="";
Yuding post = new Yuding(); // 创建实体类
// 设置前台提交上来的数据到实体类中
post.setLvyouxianluid(Request.getInt("lvyouxianluid"));
post.setXianlubianhao(Request.get("xianlubianhao"));
post.setXianlumingcheng(Request.get("xianlumingcheng"));
post.setChufadi(Request.get("chufadi"));
post.setTujingdi(Request.get("tujingdi"));
post.setZhongdian(Request.get("zhongdian"));
post.setJiage(Request.getDouble("jiage"));
post.setDingdanhao(Request.get("dingdanhao"));
post.setYudingshijian(Request.get("yudingshijian"));
post.setYudingrenxingming(Request.get("yudingrenxingming"));
post.setLianxifangshi(Request.get("lianxifangshi"));
post.setZhuangtai(Request.get("zhuangtai"));
post.setBeizhu(Request.get("beizhu"));
post.setYudingren(Request.get("yudingren"));
post.setAddtime(Info.getDateStr());
post.setLvyouxianluid(Request.getInt("lvyouxianluid"));
post.setIszf("否");
service.insert(post); // 插入数据
int charuid = post.getId().intValue();
Query.execute("update yuding set zhuangtai");
if(isAjax()){
return jsonResult(post);
}
return showSuccess("保存成功" , Request.get("referer").equals("") ? request.getHeader("referer") : Request.get("referer"));
}
/**
*
* @return
*/
@RequestMapping("/yudingupdate")
public String update()
{
_var = new LinkedHashMap(); // 重置数据
// 创建实体类
Yuding post = new Yuding();
// 将前台表单数据填充到实体类
if(!Request.get("lvyouxianluid").equals(""))
post.setLvyouxianluid(Request.getInt("lvyouxianluid"));
if(!Request.get("xianlubianhao").equals(""))
post.setXianlubianhao(Request.get("xianlubianhao"));
if(!Request.get("xianlumingcheng").equals(""))
post.setXianlumingcheng(Request.get("xianlumingcheng"));
if(!Request.get("chufadi").equals(""))
post.setChufadi(Request.get("chufadi"));
if(!Request.get("tujingdi").equals(""))
post.setTujingdi(Request.get("tujingdi"));
if(!Request.get("zhongdian").equals(""))
post.setZhongdian(Request.get("zhongdian"));
if(!Request.get("jiage").equals(""))
post.setJiage(Request.getDouble("jiage"));
if(!Request.get("dingdanhao").equals(""))
post.setDingdanhao(Request.get("dingdanhao"));
if(!Request.get("yudingshijian").equals(""))
post.setYudingshijian(Request.get("yudingshijian"));
if(!Request.get("yudingrenxingming").equals(""))
post.setYudingrenxingming(Request.get("yudingrenxingming"));
if(!Request.get("lianxifangshi").equals(""))
post.setLianxifangshi(Request.get("lianxifangshi"));
if(!Request.get("zhuangtai").equals(""))
post.setZhuangtai(Request.get("zhuangtai"));
if(!Request.get("beizhu").equals(""))
post.setBeizhu(Request.get("beizhu"));
if(!Request.get("yudingren").equals(""))
post.setYudingren(Request.get("yudingren"));
if(!Request.get("addtime").equals(""))
post.setAddtime(Request.get("addtime"));
post.setId(Request.getInt("id"));
service.update(post); // 更新数据
int charuid = post.getId().intValue();
if(isAjax()){
return jsonResult(post);
}
return showSuccess("保存成功" , Request.get("referer")); // 弹出保存成功,并跳转到前台提交的 referer 页面
}
/**
*
*/
@RequestMapping("/yuding_delete")
public String delete()
{
_var = new LinkedHashMap(); // 重置数据
if(!checkLogin()){
return showError("尚未登录");
}
int id = Request.getInt("id"); // 根据id 删除某行数据
HashMap map = Query.make("yuding").find(id);
service.delete(id);// 根据id 删除某行数据
return showSuccess("删除成功",request.getHeader("referer"));//弹出删除成功,并跳回上一页
}
}

@ -1,11 +0,0 @@
package com.spring.dao;
import com.base.MapperBase;
import com.spring.entity.Yuding;
import org.springframework.stereotype.Repository;
@Repository
public interface YudingMapper extends MapperBase<Yuding> {
}

@ -0,0 +1,123 @@
<template>
<div class="admins-add" v-loading="loading">
<el-card class="box-card">
<div slot="header" class="clearfix">
<span class="title"> 添加管理员</span>
</div>
<div class="form-database-form">
<el-form :model="form" ref="formModel" label-width="130px" status-icon validate-on-rule-change>
<el-form-item label="帐号" prop="username" required :rules="[{required:true, message:'请填写帐号'}, {validator:rule.checkRemote, message:'内容重复了', checktype:'insert', module:'admins', col:'username', trigger:'blur'}]">
<el-input placeholder="输入帐号" style="width:250px;" v-model="form.username" /> </el-form-item>
<el-form-item label="密码" prop="pwd" required :rules="[{required:true, message:'请填写密码'}]">
<el-input placeholder="输入密码" style="width:250px;" v-model="form.pwd" /> </el-form-item>
<el-form-item v-if="btnText">
<el-button type="primary" @click="submit">{{ btnText }}</el-button>
</el-form-item>
</el-form>
</div>
</el-card>
</div>
</template>
<style type="text/scss" scoped lang="scss">
.admins-add{
}
</style>
<script>
import api from '@/api'
import rule from '@/utils/rule'
import { extend } from '@/utils/extend'
export default {
name:'admins-add',
data() {
return {
rule,
loading:false,
form:{
username:'',
pwd:'',
},
}
},
watch: {
},
props: {
isRead:{
type:Boolean,
default:true
},
btnText:{
type:String,
default:'提交'
},
},
computed: {},
methods: {
submit(){
this.$refs.formModel.validate().then(res=>{
if(this.loading)return;
this.loading = true;
var form = this.form;
this.$post(api.admins.insert , form).then(res=>{
this.loading = false;
if(res.code == api.code.OK){
this.$message.success('添加成功');
this.$emit('success' , res.data);
this.$refs.formModel.resetFields();
this.loadInfo();
}else{
this.$message.error(res.msg);
}
}).catch(err=>{
this.loading = false;
this.$message.error(err.message);
})
}).catch(err=>{
console.log(err.message);
})
},
loadInfo(){
var form = this.form;
//
this.loading = true;
this.$post(api.admins.create , {
id:this.$route.query.id
}).then(res=>{
this.loading = false;
if(res.code == api.code.OK){
extend(this , res.data);
}else{
this.$message.error(res.msg);
this.$router.go(-1);
}
}).catch(err=>{
this.$message.error(err.message);
this.$router.go(-1);
});
},
},
created() {
this.loadInfo();
},
mounted() {
},
destroyed() {
}
}
</script>

@ -0,0 +1,42 @@
<template>
<span>
{{ weizhi.address }}
</span>
</template>
<script>
import {empty, isObject} from "@/utils/extend";
export default {
name: "e-address-name",
props:{
address:[String,Object],
},
computed:{
weizhi(){
if(empty(this.address))
{
return {
address:''
};
}
if(isObject(this.address))
{
return this.address;
}
try{
var result = eval("("+this.address+")");
return result
}catch (e) {
return {
address:''
};
}
}
}
}
</script>
<style scoped>
</style>

@ -0,0 +1,100 @@
<template>
<div class="">
<baidu-map :center="{lng:data.lng,lat:data.lat}" @ready="readyBaidu" :zoom="data.zoom" class="baidumap" style="height: 250px" ref="baiduMap">
<bm-view class="map" style=";height: 250px"></bm-view>
<bm-control :offset="{width: '10px', height: '10px'}" v-if="initMap">
<el-input v-model="address" style="width: 250px" placeholder="请输入地名" />
</bm-control>
<bm-local-search v-if="initMap" class="localSearch" style="width: 350px;height: 250px;overflow: hidden auto" :auto-viewport="true" :keyword.sync="address"
@infohtmlset="searchComplete"></bm-local-search>
</baidu-map>
{{value}}
</div>
</template>
<style type="text/scss" lang="scss">
.baidumap{
display: flex;
.localSearch{
padding: 0 10px;
}
}
.map{
flex-grow: 1;
img{
max-width: none;
max-height: none;
}
}
</style>
<script>
import jdk from '@/utils/extend'
export default {
name: "e-baidu-address",
data() {
return {
initMap:false,
address:''
}
},
props:{
value:[String,Object],
},
watch: {},
computed: {
data(){
var result = this.value;
try{
if( !jdk.isObject(result) )
{
result = JSON.parse(result);
}
}catch (e) {
result = {
address:'',
lng:114.053703,
lat:22.673854,
zoom:15
};
}
return result;
}
},
methods: {
readyBaidu({BMap, map}){
this.initMap = true;
this.$BMap = BMap;
this.address = this.data.address;
},
searchComplete(e){
this.showPointValue(e)
},
showPointValue(p)
{
var $this = this;
var bmap = $this.$refs.baiduMap.map;
var point = p.point;
var obj = {
lng:point.lng,
lat:point.lat,
zoom:bmap.getZoom(),
title:p.title,
address:p.address || this.address
};
this.$emit('input' , JSON.stringify(obj));
}
},
created() {
},
mounted() {
},
destroyed() {
}
}
</script>

@ -0,0 +1,97 @@
<template>
<span class="e-audio">
<a :href="formatImageSrc(src)" download target="_blank">下载</a>
<span class="mkicon" @click="playAudio" :class="{'mkicon-play':!playState,'mkicon-pause':playState}"></span>
<span>{{currTime}}</span>
/
<span>{{endTime}}</span>
<audio :src="formatImageSrc(src)" @canplay="canplay" @timeupdate="updateTime" preload="auto" ref="audio" @play="play" @pause="pause" @ended="pause" @error="pause"></audio>
</span>
</template>
<style type="text/scss" lang="scss">
.e-audio{
.mkicon{
font-size: 16px;
color: #888888;
}
}
</style>
<script>
import './asset/icon/MKPlayer.scss'
import {formatImageSrc} from "@/utils/utils";
function formatTime(time) {
var hour, minute, second;
hour = (parseInt(time / 3600, 10));
if (hour <10) hour = '0' + hour;
minute = (parseInt((time % 3600) / 60, 10));
if (minute < 10) minute = '0' + minute;
second = (parseInt(time % 60, 10));
if (second < 10) second = '0' + second;
if (hour > 0) {
return hour + ":" + minute + ":" + second;
} else {
return minute + ":" + second;
}
}
export default {
name: "e-audio",
data() {
return {
playState:false,
currentTime:0,
duration:0,
}
},
props:{
src:String
},
watch: {},
computed: {
currTime(){
return formatTime(this.currentTime)
},
endTime(){
return formatTime(this.duration)
}
},
methods: {
formatImageSrc,
canplay(){
this.updateTime()
},
updateTime(){
this.duration = this.$refs.audio.duration
this.currentTime = this.$refs.audio.currentTime
},
playAudio(){
if(this.playState){
this.$refs.audio.pause();
this.playState = false;
}else{
this.$refs.audio.play();
this.playState = true;
}
},
play(){
this.playState = true;
},
pause(){
this.playState = false;
}
},
created() {
},
mounted() {
},
destroyed() {
}
}
</script>

@ -0,0 +1,211 @@
<template>
<article class="single_blog">
<figure>
<div class="blog_thumb" v-if="image" @click="$gotoUrl">
<a href="javascript:;" class="img-box" :class="['pb'+imageHeight , (isScale?'img-scale':'')]">
<div class="img" :style="{'background-image':'url('+$getImage(image)+')'}"></div>
</a>
</div>
<figcaption class="blog_content">
<h4 class="post_title">
<a href="javascript:;" @click="$gotoUrl"> {{ title }} </a>
</h4>
<div class="articles_date">
<span><i class="fa fa-calendar" aria-hidden="true"></i> {{ formatTime }}</span>
<span v-if="sendUser"><i class="fa fa-user" aria-hidden="true"></i> {{ sendUser }}</span>
</div>
<p class="post_desc">
{{ contents }}
</p>
<a href="javascript:;" class="btn-see" @click="$gotoUrl"> {{btnText}} </a>
<span class="article-price" v-if="price"> {{ price }}</span>
</figcaption>
</figure>
</article>
</template>
<script>
import gotoUrl from "../mixins/gotoUrl";
export default {
name: "e-module-blog",
data() {
return {}
},
props:{
to:[String,Object],
replace:{
type:Boolean,
default:false
},
title:String,
price:[String,Number],
content:[String,Number],
sendUser:String,
time:String,
image:String,
imageHeight:{
type:[String,Number],
default:80
},
btnText:{
type:String,
default:'+ 查看详情'
},
isScale:{
type:Boolean,
default:false
},
len:{
type:Number,
default:30
}
},
mixins:[gotoUrl],
watch: {},
computed: {
contents() {
if (this.content) {
return this.content.replace(/<[^>]+>/g, "")
.replace(/\&nbsp\;/ig,'')
.replace(/\s+/ig , '')
.replace(/(\n|\r)/ig , '')
.substr(0, this.len);
}
return '';
},
formatTime () {
if ( this.time ) {
return this.time.substr(0,10);
}
return "";
},
imageSrc(){
return this.image ? this.image.split(',')[0] : '';
}
},
methods: {
},
created() {
},
mounted() {
},
destroyed() {
}
}
</script>
<style type="text/scss" scoped lang="scss">
.single_blog{
padding: 10px;
background: #ffffff;
figure{
margin: 0px;
padding: 0px;
.blog_content {
padding-top: 20px;
position: relative;
.post_title {
margin: 0px;
padding: 0px;
font-size: 16px;
text-transform: capitalize;
line-height: 30px;
margin-bottom: 10px;
font-weight: 500;
}
.articles_date {
margin-bottom: 10px;
display: flex;
}
.articles_date span {
font-size: 13px;
line-height: 15px;
margin-right: 5px;
}
p.post_desc {
font-size: 14px;
line-height: 24px;
height: 48px;
overflow: hidden;
color: #9a9a9a;
margin-bottom: 0;
}
> a.btn-see {
font-size: 14px;
text-transform: uppercase;
font-weight: 600;
display: inline-block;
border: 1px solid #454545;
line-height: 20px;
padding: 10px;
border-radius: 15px;
margin-top: 24px;
text-decoration: none;
color: rgba(91,40,158,0.8);
width: 100px;
}
> a:hover {
color: #fff;
background: #F53737;
border-color: #F53737;
}
.article-price{
position: absolute;
right: 10px;
bottom: 10px;
color: #F53737;
font-size: 18px;
}
}
.blog_carousel:hover .owl-nav div {
opacity: 1;
visibility: visible;
left: 0;
}
.blog_carousel:hover .owl-nav div.owl-next {
right: 0;
}
.blog_carousel .owl-nav.disabled {
display: block;
}
.blog_carousel .owl-nav div {
position: absolute;
top: 50%;
transform: translatey(-50%);
font-size: 18px;
-webkit-transition: 0.3s;
transition: 0.3s;
opacity: 0;
visibility: hidden;
width: 62px;
height: 62px;
line-height: 60px;
text-align: center;
background: rgba(255, 255, 255, 0.75);
border-radius: 50%;
left: 25px;
border: 1px solid #e5e5e5;
}
.blog_carousel .owl-nav div:hover {
color: #fff;
background: #F53737;
border-color: #F53737;
}
.blog_carousel .owl-nav div.owl-next {
right: 15px;
left: auto;
}
@media only screen and (max-width: 767px) {
.blog_carousel .owl-nav div {
display: none;
}
}
}
}
</style>

@ -0,0 +1,53 @@
<template>
<el-checkbox-group v-model="select" @change="changeSelect">
<el-checkbox v-for="v in list" :label="v"> {{ v.zimu }} {{ v.title }} </el-checkbox>
</el-checkbox-group>
</template>
<script>
import {findObject} from "@/utils/utils";
import {each} from "@/utils/extend";
export default {
name: "t-checkbox",
data () {
return {
select:[],
}
},
props:{
obj:Object,
paper:String,
daan:String
},
computed:{
list(){
if(!this.paper){
return [];
}
return eval("("+this.paper+")")
}
},
methods:{
changeSelect(val){
var daan = [];
var zimu = [];
var defen = 0;
each(this.select , (i,o)=>{
daan.push(o.title);
zimu.push(o.zimu);
defen +=Math.floor( o.point === undefined ? o.defen : o.point);
});
this.obj.zimu = zimu.join(","),
this.obj[this.daan] = daan.join(","),
this.obj.defen = defen;
}
}
}
</script>
<style scoped>
</style>

@ -0,0 +1,44 @@
<template>
<el-tooltip class="item" effect="dark" :content="isCollect ? '已收藏':'收藏'" placement="top-start">
<el-button v-if="isCollect" icon="el-icon-star-on" type="danger" circle></el-button>
<el-button @click="collect" v-else icon="el-icon-star-off" type="warning" circle></el-button>
</el-tooltip>
</template>
<style type="text/scss" lang="scss">
</style>
<script>
export default {
name: "e-collect",
data() {
return {
}
},
props:{
value:[Boolean,Number],
module:String,
id:[String,Number],
ziduan:[String,Number],
},
watch: {},
computed: {
isCollect(){
return this.value;
}
},
methods: {
collect(){
this.$collect(this.module , this.ziduan , this.id).then(res=>{
this.$emit('input' , true);
});
}
},
created() {
},
mounted() {
},
destroyed() {
}
}
</script>

@ -0,0 +1,84 @@
<template>
<div class="e-container">
<slot></slot>
</div>
</template>
<style type="text/scss" lang="scss">
@media screen and (min-width: 1100px){
.e-container{
width: 980px;
margin:0 auto;
}
}
@media screen and (min-width: 1200px){
.e-container{
width: 1100px;
margin:0 auto;
}
}
@media screen and (min-width: 1300px){
.e-container{
width: 1200px;
margin:0 auto;
}
}
@media screen and (max-width: 768px) {
.e-container{
padding: 0px 8px;
}
#app{
overflow-x: hidden;
}
#project-box .info{
float: none!important;
}
#project-box .entry-content{
float: none!important;
width: 100% !important;
padding: 10px;
}
.el-form{
.el-form-item__label{
width: 100% !important;
text-align: left;
}
.el-form-item__content{
width: 100%!important;
margin-left: 0px!important;
}
}
p{
white-space:pre-wrap;
}
.Home >div>div>.el-carousel{
display: none;
}
.goods-info {
.gallery-list{
float: none!important;
width: 100% !important;
height: 350px;
}
.goods-right-content{
margin-left: 0px!important;
}
}
.hjlgf{
.row1{
float: none!important;
width: auto;
}
.row2{
margin-left: 0px!important;
}
}
}
</style>
<script>
export default {
name: "e-container",
}
</script>

@ -0,0 +1,83 @@
<template>
<div class="detail" v-if="address.lng">
<baidu-map class="map" :center="{lng: address.lng, lat: address.lat}" :zoom="15">
<bm-info-window :position="{lng: address.lng, lat: address.lat}"
title="位置信息"
:show="infoWindow"
@close="infoWindowClose" @open="infoWindowOpen">
<p v-text="address.address"></p>
<el-button type="primary" @click="open"></el-button>
</bm-info-window>
<bm-marker :position="{lng:address.lng,lat:address.lat}" :dragging="false" animation="BMAP_ANIMATION_BOUNCE"></bm-marker>
</baidu-map>
<a :href="daohangUrl" ref="daohang" target="_blank"></a>
</div>
</template>
<style type="text/scss" scoped lang="scss">
.detail {
width: 100%;
height: 350px;
.map {
width: 100%;
height: 100%;
img{
max-width: none;
max-height: none;
}
}
}
</style>
<script>
import {isObject} from "@/utils/extend";
export default {
name: "e-baidu-address-detail",
data() {
return {
daohangUrl:'',
infoWindow: true
}
},
props:{
map:[Object,String]
},
watch: {},
computed: {
address(){
var map = this.map;
console.log(map)
if(!map){
return {};
}
if(!isObject(map)){
map = JSON.parse(map);
}
return map;
}
},
methods: {
infoWindowClose () {
this.infoWindow = false
},
infoWindowOpen () {
this.infoWindow = true
},
open(){
var obj = this.address;
var url = "http://api.map.baidu.com/marker?location="+obj.lat+","+obj.lng+"&title=目的地&content="+obj.address+"&output=html&src=webapp.baidu.openAPIdemo&output=html";
var a = document.createElement('a');
a.href = url;
a.target = '_blank';
a.click();
}
},
created() {
},
mounted() {
},
destroyed() {
}
}
</script>

@ -0,0 +1,37 @@
<template>
<jt-tinymce @input="$emit('input' , $event)" :upload-image="uploadFile" :value="value"></jt-tinymce>
</template>
<style type="text/scss" lang="scss">
</style>
<script>
import JtTinymce from "@/components/Tinymce/index";
import api from "@/api";
import {formatImageSrc} from "@/utils/utils";
export default {
name: "e-editor",
components: {JtTinymce},
data() {
return {}
},
props:{
value:String
},
watch: {},
computed: {},
methods: {
uploadFile(file , success , error)
{
api.attachment.upload(file).then(file=>{
success(formatImageSrc(file))
}).catch(error);
}
},
created() {
},
mounted() {
},
destroyed() {
}
}
</script>

@ -0,0 +1,45 @@
<template>
<span>
<template v-if="value">
<a :href="setting.proxyUrl + '/'+(value)" :download="filename ? filename : basename(value)">
下载
</a>
</template>
<template v-else>
-
</template>
</span>
</template>
<style type="text/scss" lang="scss">
</style>
<script>
import setting from '@/setting'
const path = require('path');
export default {
name: "e-file-list",
data() {
return {
setting,
path
}
},
props:{
value:String,
filename:String
},
watch: {},
computed: {},
methods: {
basename:path.basename
},
created() {
},
mounted() {
},
destroyed() {
}
}
</script>

@ -0,0 +1,50 @@
<template>
<div class="footer mt10">
<div class="copyrightnr link">
友情链接&nbsp;
<a v-for="v in likeList" :href="v.wangzhi" target="_blank">{{ v.wangzhanmingcheng }}</a> &nbsp;
</div>
</div>
</template>
<style type="text/scss" scoped lang="scss">
.footer{
padding: 15px;
color: #767676;
text-align: center;
.link{
a:after{
content: ' | ';
}
a:last-child:after{
content: '';
}
}
}
</style>
<script>
import api from '@/api';
import {extend} from '@/utils/extend';
const setting = require('@/setting');
export default {
data(){
return {
likeList:[]
};
},
methods:{
loadListMenu(module, target) {
this.$post(api.search.all, {table: module, order: 'id desc'}).then(res => {
this[target] = res.data;
});
},
},
created(){
this.loadListMenu("youqinglianjie",'likeList');
}
}
</script>

@ -0,0 +1,328 @@
<template>
<div class="header-box" :class="{ open: status }">
<e-container>
<div class="header-top clearfix">
<div class="left">欢迎光临</div>
<div class="right">
<template v-if="$session.username">
<el-dropdown>
<span class="el-dropdown-link">
{{ $session.username }} <i class="el-icon-arrow-down el-icon--right"></i>
</span>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item icon="el-icon-user" @click.native="$router.push('/admin')">个人中心</el-dropdown-item>
<el-dropdown-item icon="el-icon-arrow-left" @click.native="logout">退出登录</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</template>
<template v-else>
<el-button type="primary" @click="$router.push('/login')" size="mini">
登录
</el-button>
</template>
</div>
</div>
</e-container>
<div class="marks-bg" @click="status = false"></div>
<div class="header-nav">
<e-container class="clearfix">
<div class="logo nav-left">
<div class="brand" @click="status = true">
<span class="fa fa-bars"></span>
</div>
{{ setting.title }}
</div>
<div class="header-nav-ul nav-left clearfix">
<ul class="header-nav-left clearfix">
<li>
<router-link to="/">首页
</router-link>
</li>
<li>
<router-link to="/xinwenxinxi">旅游新闻
<i class="el-icon-arrow-down"></i>
</router-link>
<ul class="submenu">
<li v-for="m in listMenuxinwenfenlei">
<router-link :to="'/xinwenxinxi?fenlei=' + m.id" v-text="m.fenleimingcheng"></router-link>
</li>
</ul>
</li>
<li>
<router-link to="/jingdianxinxi">景区信息
<i class="el-icon-arrow-down"></i>
</router-link>
<ul class="submenu">
<li v-for="m in listMenudiqu">
<router-link :to="'/jingdianxinxi?suoshudiqu=' + m.id" v-text="m.diqumingcheng"></router-link>
</li>
</ul>
</li>
<li>
<router-link to="/difangmeishi">美食信息
</router-link>
</li>
<li>
<router-link to="/lvyouxianlu">旅游线路
</router-link>
</li>
<li>
<router-link to="/liuyanbanadd">在线留言
</router-link>
</li>
<li>
<router-link to="/yonghuadd">注册
</router-link>
</li>
</ul>
</div>
</e-container>
</div>
</div>
</template>
<style type="text/scss" scope lang="scss">
.el-button--primary{
background: rgba(15, 80, 37, 0.8) !important;
}
.header-box {
.header-top {
padding: 5px;
}
.marks-bg,
.brand {
display: none;
}
.marks-bg {
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
z-index: 100;
background: rgba(0, 0, 0, .5);
}
.left {
float: left;
}
.right {
float: right;
}
.header-nav {
background: rgba(11, 85, 14, 0.8);
height: 55px;
line-height: 55px;
a {
color: #ffffff;
}
.logo {
font-size: 18px;
color: #ffffff;
margin-right: 10px;
}
.nav-left {
float: left;
}
.nav-right {
float: right;
}
}
.header-nav-ul {
>ul>li {
float: left;
position: relative;
>a {
display: block;
padding: 0px 10px;
>i {
transition: .2s linear;
}
}
>.submenu {
visibility: hidden;
opacity: .5;
position: absolute;
top: 100%;
left: 0px;
max-height: 0px;
width: 200px;
z-index: 5;
background: rgba(75, 154, 200, 1);
transition: .5s cubic-bezier(0, 1, 0.5, 1);
border-radius: 0 0 8px 8px;
>li>a {
line-height: 20px;
display: block;
padding: 10px 15px;
border-bottom: 1px #2B6C99 solid;
}
>li:last-child>a {
border-bottom: none;
}
}
}
>ul>li.active,
>ul>li:hover {
>a {
background: #4B9AC8;
}
}
>ul>li:hover {
>a>i {
transform: rotate(180deg);
}
>.submenu {
visibility: initial;
opacity: 1;
max-height: 900px;
}
}
}
}
@media screen and (max-width: 768px) {
.header-box {
.brand {
display: inline;
float: right;
}
.nav-right {
display: none;
}
.logo {
float: none;
width: 100%;
}
.header-nav-ul {
position: fixed;
left: 0;
top: 0;
bottom: 0;
z-index: 120;
transform: translateX(-100%);
width: 50%;
visibility: hidden;
background: rgba(0, 0, 0, .5);
transition: transform 100ms ease-in-out;
.header-nav-left {
>li {
width: 100%;
float: none;
>.submenu {
visibility: visible;
max-height: none;
position: static;
background: transparent;
padding-left: 20px;
>li {
>a {
border-bottom: none;
}
}
}
}
}
}
}
.header-box.open {
.marks-bg {
display: block;
}
.header-nav-ul {
visibility: visible;
transform: translateX(0);
}
}
}
</style>
<script>
import api from '@/api';
import { extend } from '@/utils/extend';
const setting = require('@/setting');
export default {
name: "bootstrap-header",
data() {
return {
status: false,
keyword: '',
setting,
listMenuxinwenfenlei: [],
listMenudiqu: [],
}
},
watch: {
$route() {
this.status = false;
}
},
computed: {
},
methods: {
searchKeyword() {
var filter = {};
filter[""] = this.keyword;
this.$router.push({
path: '/',
query: filter
});
},
logout() {
this.$confirm('确定退出登录?', '确认信息').then(() => {
// 退
this.$store.dispatch('user/logout');
});
},
loadListMenu(module, target) {
this.$post(api.search.all, { table: module, order: 'id desc' }).then(res => {
this[target] = res.data;
});
},
},
created() {
this.loadListMenu('xinwenfenlei', 'listMenuxinwenfenlei');
this.loadListMenu('diqu', 'listMenudiqu');
},
mounted() {
},
destroyed() {
}
}
</script>

@ -0,0 +1,55 @@
<template>
<div class="Home">
<v-header></v-header>
<transition name="slide-slip">
<router-view/>
</transition>
<v-footer></v-footer>
</div>
</template>
<style type="text/scss" lang="scss">
.slide-slip-enter-active,
.slide-slip-leave-active {
transition: all .3s;
}
.slide-slip-enter {
transform: translateX(100%);
/* opacity: 0; */
}
.slide-slip-leave-to {
transform: translateX(-100%);
}
.dye-bottom-leave-active,
.dye-bottom-enter-active {
transition: all .3s;
}
.dye-bottom-enter,
.dye-bottom-leave-to {
opacity: 0.5;
}
</style>
<script>
import VHeader from "@/views/header";
import VFooter from "@/views/footer";
export default {
name: "home",
components: { VFooter, VHeader},
data() {
return {
}
},
watch: {},
computed: {},
methods: {},
created() {
},
mounted() {
},
destroyed() {
}
}
</script>

@ -0,0 +1,99 @@
<template>
<div class="product-preview">
<div class="big-image">
<a href="javascript:;" data-toggle="lightbox">
<img :src="lists[active]" alt="" />
</a>
</div>
<ul class="thumbs unstyled clearfix">
<li v-for="(r,k) in lists" :class="{active:active == k}" :key="r" @click="active=k">
<a href="javascript:;">
<img :src="r" alt="" />
</a>
</li>
</ul>
</div>
</template>
<style type="type/scss" lang="scss">
.product-preview {
position: relative;
overflow: hidden;
zoom: 1;
.big-image {
margin-right: 124px;
overflow: hidden;
zoom: 1;
}
.thumbs {
position: absolute;
top: 25px;
right: 0;
width: 68px;
> li {
margin-top: 5px;
border: 3px solid #919191;
border-radius: 50%;
overflow: hidden;
transition: all 200ms ease-in-out;
> a {
display: block;
width: 100%;
height: 84px;
}
> a:hover {
}
}
>li.active{
border-color: #fa6f57;
}
> li:first-child {
margin-top: 0;
}
}
}
</style>
<script>
import { isArray } from "@/utils/extend";
export default {
name: "e-image-toggle",
data() {
return {
active:0
}
},
props:{
images:{
type:[String,Array]
}
},
watch: {},
computed: {
lists(){
var images = this.images;
if(!images){
return [];
}
var arr;
if(isArray(images)){
arr = images;
}else{
arr = images.split(',');
}
arr = arr.filter(s=>s);
return arr;
}
},
methods: {},
created() {
},
mounted() {
},
destroyed() {
}
}
</script>

@ -0,0 +1,66 @@
<template>
<fieldset class="images_box">
<div class="imagesList" v-viewer>
<div class="uploadImage" v-for="(img,k) in images" :key="k">
<el-image :src="$formatImageSrc(img)" fit="cover" style="width: 100px;height: 100px">
</el-image>
</div>
</div>
</fieldset>
</template>
<style type="text/scss" lang="scss">
.images_box{
border: 1px solid #DEDEDE;
}
.imagesList{
.uploadImage{
display: inline-block;
width: 120px;
height: 120px;
padding: 10px;
border: 1px solid #DEDEDE;
text-align: center;
margin-right: 10px;
margin-bottom: 10px;
}
}
</style>
<script>
import {isString} from "@/utils/extend";
export default {
name: "e-images",
data() {
return {}
},
props:{
src:{
type:[String,Array]
},
type:String
},
watch: {},
computed: {
images(){
var src = this.src;
if(isString(src)){
src = src.split(",").filter(s=>s!='');
}
if(!src)return[];
src = src.map(s=>this.$formatImageSrc(s));
return src;
}
},
methods: {
},
created() {
},
mounted() {
},
destroyed() {
}
}
</script>

@ -0,0 +1,48 @@
<template>
<div class="img-box" :class="['pb'+pb,isScale?'img-scale':'']">
<div class="img" :style="{'background-image':'url('+image+')'}"></div>
</div>
</template>
<style type="text/scss" lang="scss">
</style>
<script>
import {formatImageSrc} from "@/utils/utils";
export default {
name: "e-img-box",
data() {
return {}
},
props:{
pb:{
type:[String,Number],
default:100
},
src:[String],
isScale:{
type:Boolean,
default:false
}
},
watch: {},
computed: {
image(){
var src = this.src;
if(src == ''){
return '';
}
var a = src.split(',');
return formatImageSrc(a[0]);
}
},
methods: {},
created() {
},
mounted() {
},
destroyed() {
}
}
</script>

@ -0,0 +1,256 @@
<template>
<div :class="{fullscreen:fullscreen}" class="tinymce-container" :style="{width:containerWidth}">
<textarea :id="tinymceId" class="tinymce-textarea"/>
<div class="editor-custom-btn-container">
<editorImage color="#1890ff" class="editor-upload-btn" @successCBK="imageSuccessCBK"/>
</div>
</div>
</template>
<script>
/**
* docs:
* https://panjiachen.github.io/vue-element-admin-site/feature/component/rich-editor.html#tinymce
*/
import editorImage from './components/EditorImage'
import plugins from './plugins'
import toolbar from './toolbar'
import load from './dynamicLoadScript'
// why use this cdn, detail see https://github.com/PanJiaChen/tinymce-all-in-one
const tinymceCDN = '/static/tinymce/tinymce.min.js'
export default {
name: 'jt-tinymce',
components: {editorImage},
props: {
id: {
type: String,
default: function () {
return 'vue-tinymce-' + +new Date() + ((Math.random() * 1000).toFixed(0) + '')
}
},
value: {
type: String,
default: ''
},
toolbar: {
type: Array,
required: false,
default() {
return []
}
},
menubar: {
type: String,
default: 'file edit insert view format table'
},
height: {
type: [Number, String],
required: false,
default: 360
},
width: {
type: [Number, String],
required: false,
default: 'auto'
},
uploadImage:{
type: Function,
required: true
},
pickerUploadImage:{
type: Function,
default:function () {
return function (file,success,failure) {
}
}
}
},
data() {
return {
hasChange: false,
hasInit: false,
tinymceId: this.id,
fullscreen: false,
languageTypeList: {
'en': 'en',
'zh': 'zh_CN',
'es': 'es_MX',
'ja': 'ja'
}
}
},
computed: {
containerWidth() {
const width = this.width
if (/^[\d]+(\.[\d]+)?$/.test(width)) { // matches `100`, `'100'`
return `${width}px`
}
return width
}
},
watch: {
value(val) {
if (!this.hasChange && this.hasInit) {
this.$nextTick(() =>
window.tinymce.get(this.tinymceId).setContent(val || ''))
}
}
},
mounted() {
this.init()
},
activated() {
if (window.tinymce) {
this.initTinymce()
}
},
deactivated() {
this.destroyTinymce()
},
destroyed() {
this.destroyTinymce()
},
methods: {
init() {
// dynamic load tinymce from cdn
load(tinymceCDN, (err) => {
if (err) {
this.$message.error(err.message)
return
}
this.initTinymce()
})
},
initTinymce() {
const _this = this
window.tinymce.init({
selector: `#${this.tinymceId}`,
language: this.languageTypeList['zh'],
height: this.height,
body_class: 'panel-body ',
object_resizing: false,
paste_data_images:true,
toolbar: this.toolbar.length > 0 ? this.toolbar : toolbar,
menubar: this.menubar,
plugins: plugins,
end_container_on_empty_block: true,
powerpaste_word_import: 'clean',
code_dialog_height: 450,
code_dialog_width: 1000,
branding:false,
automatic_uploads: true,
advlist_bullet_styles: 'square',
advlist_number_styles: 'default',
imagetools_cors_hosts: ['www.tinymce.com', 'codepen.io'],
default_link_target: '_blank',
link_title: false,
nonbreaking_force_tab: true, // inserting nonbreaking space &nbsp; need Nonbreaking Space Plugin
init_instance_callback: editor => {
if (_this.value) {
editor.setContent(_this.value)
}
_this.hasInit = true
editor.on('NodeChange Change KeyUp SetContent', () => {
this.hasChange = true
this.$emit('input', editor.getContent())
})
},
setup(editor) {
editor.on('FullscreenStateChanged', (e) => {
_this.fullscreen = e.state
})
},
// it will try to keep these URLs intact
// https://www.tiny.cloud/docs-3x/reference/configuration/Configuration3x@convert_urls/
// https://stackoverflow.com/questions/5196205/disable-tinymce-absolute-to-relative-url-conversions
convert_urls: false,
images_upload_handler(blobInfo, success, failure){
_this.uploadImage(blobInfo.blob() , success , failure)
},
//
file_picker_callback: function (callback, value, meta) {
var input = document.createElement('input');
input.setAttribute('type', 'file');
input.onchange = function () {
var file = this.files[0];
if(file){
_this.uploadImage(file , callback , function () {
})
}
/*_this.pickerUploadImage(file, callback , function () {
})*/
};
input.click();
},
paste_upload_image:function (editor , file , success , error) {
_this.uploadImage(file , success , error)
}
})
},
destroyTinymce() {
const tinymce = window.tinymce.get(this.tinymceId)
if (this.fullscreen) {
tinymce.execCommand('mceFullScreen')
}
if (tinymce) {
tinymce.destroy()
}
},
setContent(value) {
window.tinymce.get(this.tinymceId).setContent(value)
},
getContent() {
window.tinymce.get(this.tinymceId).getContent()
},
imageSuccessCBK(arr) {
arr.forEach(v => window.tinymce.get(this.tinymceId).insertContent(`<img class="wscnph" src="${v.url}" >`))
}
}
}
</script>
<style lang="scss" scoped>
.tinymce-container {
position: relative;
line-height: normal;
}
.tinymce-container {
::v-deep {
.mce-fullscreen {
z-index: 10000;
}
}
}
.tinymce-textarea {
visibility: hidden;
z-index: -1;
}
.editor-custom-btn-container {
position: absolute;
right: 4px;
top: 4px;
/*z-index: 2005;*/
}
.fullscreen .editor-custom-btn-container {
z-index: 10000;
position: fixed;
}
.editor-upload-btn {
display: inline-block;
}
</style>

@ -0,0 +1,200 @@
<template>
<div class="v-list" v-loading="loading" element-loading-text="加载中">
<el-card class="box-card">
<div slot="header" class="clearfix">
<span class="title">
管理员列表
</span>
</div>
<!-- 搜索 -->
<div class="form-search">
<el-form @submit.prevent.stop :inline="true" size="mini">
<el-form-item label="帐号">
<el-input v-model="search.username"></el-input>
</el-form-item> <el-form-item>
<el-button type="primary" @click="searchSubmit" icon="el-icon-search">查询</el-button>
</el-form-item>
</el-form>
</div>
<el-table border :data="list" style="width: 100%" highlight-current-row
>
<el-table-column type="index" label="#"></el-table-column> <!-- -->
<el-table-column label="帐号"width="130">
<template slot-scope="{row}">
{{ row.username }} </template>
</el-table-column>
<el-table-column label="密码">
<template slot-scope="{row}">
{{ row.pwd }} </template>
</el-table-column>
<el-table-column label="操作">
<template slot-scope="{row}">
<el-button-group>
<el-tooltip content="编辑" placement="top">
<el-button icon="el-icon-edit" @click="$goto({path:'/admin/adminsupdt',query:{id:row.id } })"
type="warning" size="mini"></el-button>
</el-tooltip>
<el-tooltip content="删除" placement="top">
<el-button icon="el-icon-delete" type="danger" size="mini" @click="deleteItem(row)">
</el-button>
</el-tooltip>
</el-button-group>
</template>
</el-table-column>
</el-table>
<div class="e-pages" style="margin-top: 10px;text-align: center">
<el-pagination
@current-change="loadList"
:current-page="page"
:page-size="pagesize"
@size-change="sizeChange"
layout="total, sizes, prev, pager, next, jumper"
:total="totalCount">
</el-pagination>
</div>
</el-card>
</div>
</template>
<style type="text/scss" scoped lang="scss">
</style>
<script>
import api from '@/api';
import { remove , checkIssh } from '@/utils/utils';
import { extend } from '@/utils/extend';
import objectDiff from 'objectdiff';
/**
* 后台列表页面
*/
export default {
data() {
return {
loading:false,
list:[],
search:{
username:'',
},
total:{},
page:1, //
pagesize:10, //
totalCount:0, //
}
},
watch: {},
computed: {},
methods: {
searchSubmit(){
this.loadList(1);
},
sizeChange(e){
this.pagesize = e;
this.loadList(1);
},
checkIssh,
loadList( page ){
//
if(this.loading)return;
this.loading = true;
this.page = page;
//
var filter = extend(true, {}, this.search, {page:page+"", pagesize: this.pagesize+""});
var diff = objectDiff.diff(filter, this.$route.query);
if (diff.changed != 'equal') { //
this.$router.push({ // query
path: this.$route.path,
query: filter
});
}
this.$post(api.admins.list , filter).then(res=>{
this.loading = false;
if(res.code == api.code.OK)
{
extend(this , res.data);
}else{
this.$message.error(res.msg);
}
}).catch(err=>{
this.loading = false;
this.$message.error(err.message);
});
},
//
deleteItem( row ){
this.$confirm('确定删除数据?' , '提示',{ //
type: 'warning'
}).then(()=>{//
this.loading = true; //
this.$post(api.admins.delete , {//
id:row.id
}).then(res=>{
this.loading = false;
if(res.code != api.code.OK){
this.$message.error(res.msg);
}else{
remove(this.list , row);
}
}).catch(err=>{ // 访
this.loading = false;
this.$message.error(err.message)
})
}).catch(()=>{
//
})
},
},
beforeRouteUpdate(to,form,next){
extend(this.search , to.query)
this.loadList(1);
next();
},
created() {
var search = extend(this.search , this.$route.query)
if(search.page)
{
this.page = Math.floor(this.$route.query.page)
delete search.page
}
if(search.pagesize)
{
this.pagesize = Math.floor(this.$route.query.pagesize)
delete search.pagesize
}
this.loadList(1);
},
mounted() {
},
destroyed() {
}
}
</script>

@ -0,0 +1,94 @@
<template>
<div class="v-mod" v-loading="loading">
<el-card class="box-card">
<div slot="header" class="clearfix">
<span> 修改密码</span>
</div>
<div class="">
<el-form ref="modForm" :model="form" inline-message label-width="120px">
<el-form-item label="原密码" prop="oldPassword" required :rules="[{required:true,message:'请填写原密码'}]">
<el-input style="width:200px" type="password" v-model="form.oldPassword"></el-input>
</el-form-item>
<el-form-item label="新密码" prop="newPwd" required :rules="[{required:true,message:'请填写新密码'}]">
<el-input style="width:200px" type="password" v-model="form.newPwd"></el-input>
</el-form-item>
<el-form-item label="确认密码" prop="newPwd2" required
:rules="[{required:true,message:'请填写确认密码'},
{validator:checkPassword,message:'两次密码不一致', trigger: 'blur' }]">
<el-input style="width:200px" type="password" v-model="form.newPwd2"></el-input>
</el-form-item>
<el-form-item>
<el-button @click="savePassword"></el-button>
</el-form-item>
</el-form>
</div>
</el-card>
</div>
</template>
<style type="text/scss" lang="scss">
</style>
<script>
import api from '@/api'
export default {
name: "v-mod",
data() {
return {
loading:false,
form:{
oldPassword:'',
newPwd:'',
newPwd2:''
}
}
},
watch: {},
computed: {},
methods: {
savePassword(){
this.$refs.modForm.validate().then(()=>{
if( this.loading )
{
return;
}
this.loading = true;
var form = this.form;
this.$post(api.editorPassword,form).then(res=>{
this.loading = false;
if(res.code == api.code.OK)
{
this.$message.success('密码修改成功');
this.$refs.modForm.resetFields();
}else{
this.$message.error(res.msg);
}
}).catch(err=>{
this.loading = false;
this.$message.error(err.message);
});
}).catch(()=>{
})
},
checkPassword(rule, value, callback){
if(value == this.form.newPwd)
{
callback();
return;
}
callback(new Error('两次密码不一致'));
}
},
created() {
},
mounted() {
},
destroyed() {
}
}
</script>

@ -0,0 +1,57 @@
<template>
<div class="subtitle-modelbox-widget">
<h3 class="section-title">
{{title}}
</h3>
<div class="sidebar-widget-body">
<slot></slot>
</div>
<!-- /.sidebar-widget-body -->
</div>
</template>
<style type="text/scss" scoped lang="scss">
.subtitle-modelbox-widget {
background-color: #fff;
box-shadow: 0 2px 4px 0 rgba(0,0,0,.08);
.section-title {
font-size: 20px;
font-family: 'Open Sans', sans-serif;
border-bottom: 1px solid #e3e3e3;
padding-bottom: 10px;
color: rgba(91,40,158,0.8);
text-transform: uppercase;
font-weight: bold;
margin-top: 0px;
padding-left: 20px;
padding-top: 20px;
}
.sidebar-widget-body{
padding: 20px;
}
}
</style>
<script>
export default {
name: "e-module-model-box",
data() {
return {
}
},
props:{
title:String
},
watch: {},
computed: {
},
methods: {},
created() {
},
mounted() {
},
destroyed() {
}
}
</script>

@ -0,0 +1,72 @@
<template>
<div class="e-module-info">
<slot :data="data"></slot>
</div>
</template>
<style type="type/scss" lang="scss">
</style>
<script>
import api from '@/api'
export default {
name: "e-module-info",
data() {
return {
data:{}
}
},
props:{
module:String,
order:String,
where:Object,
field:String
},
watch: {
module(){
this.loadData();
},
order(){
this.loadData();
},
where(){
this.loadData();
},
field(){
this.loadData();
}
},
computed: {},
methods: {
loadData(){
var param = {};
if(this.where){
param.where = JSON.stringify(this.where);
}
if(this.order){
param.order = this.order;
}
if(this.field){
param.field = this.field;
}
param.limit = 1;
param.table = this.module;
this.$post(api.search.all , param).then(res=>{
if(res.code == 0 && res.data && res.data[0]){
this.data = res.data[0]
}
});
}
},
created() {
if(this.module){
this.loadData();
}
},
mounted() {
},
destroyed() {
}
}
</script>

@ -0,0 +1,109 @@
<template>
<div class="e-news-info clearfix">
<div class="thumb" v-if="image" @click="$gotoUrl">
<div class="img-box pb100">
<div class="img" :style="{'background-image': 'url('+$getImage(image)+')'}"></div>
</div>
</div>
<div class="news-content-text" :class="{'not-thumb':!image}">
<h3 @click="$gotoUrl">{{title}}</h3>
<div class="description" v-html="$substr(description,len)">
</div>
<div class="other-content">
<slot></slot>
</div>
</div>
</div>
</template>
<style type="text/scss" lang="scss">
.e-news-info{
margin-bottom: 10px;
background: #ffffff;
position: relative;
.thumb{
float: left;
width: 120px;
}
.news-content-text{
margin-left: 130px;
h3{
cursor: pointer;
font-size: 14px;
margin: 0px;
margin-bottom: 10px;
font-weight: 700;
}
.description{
color: #7b7b7b;
}
.other-content{
position: absolute;
left: 130px;
bottom: 5px;
span{
display: inline-block;
margin-right: 8px;
}
}
}
.news-content-text.not-thumb{
margin-left: 0px;
}
}
@media screen and (max-width: 768px){
.e-news-info{
.thumb {
width: 100px;
}
.news-content-text {
margin-left: 110px;
.other-content {
left: 110px;
}
.description{
word-break:break-all;
display:-webkit-box;/**对象作为伸缩盒子模型展示**/
-webkit-box-orient:vertical;/**设置或检索伸缩盒子对象的子元素的排列方式**/
-webkit-line-clamp:2;/**显示的行数**/
overflow:hidden;/**隐藏超出的内容**/
}
}
}
}
</style>
<script>
import gotoUrl from "../mixins/gotoUrl";
export default {
name: "e-news-list",
data() {
return {}
},
mixins:[gotoUrl],
props:{
image:String,
title:String,
description:[String,Number],
len:{
type:Number,
default:30
}
},
watch: {},
computed: {
},
methods: {
},
created() {
},
mounted() {
},
destroyed() {
}
}
</script>

@ -0,0 +1,200 @@
<template>
<div class="e-paper">
<div id="TypeFieldabc" v-if="isSelect">
<div style="border: 1px solid #ededed; border-radius: 5px; padding: 10px; background: #F2F2F2;">
<table class="table table-hover">
<thead>
<tr>
<th width="60">&nbsp;</th>
<th style="text-align: left">答案</th>
<!--<th width="80">跳转序号</th>-->
<th style="text-align: left" width="100">得分</th>
<th width="60">
<el-button size="mini" type="primary" @click="addItem"></el-button>
</th>
</tr>
</thead>
<tbody>
<tr v-for="(v,k) in paperList" :key="v.zimu">
<td style="text-align: right" v-text="v.zimu"></td>
<td>
<el-input size="mini" :value="v.title" @input="updatePaper($event,v,k,'title')"></el-input>
</td>
<td>
<el-input size="mini" :value="v.point" @input="updatePaper($event,v,k,'point')" type="number"></el-input>
</td>
<td>
<el-popconfirm icon="el-icon-info" iconColor="red" title="确定删除?" @confirm="deleteItem(k,v)" @onConfirm="deleteItem(k,v)">
<el-button size="mini" type="danger" slot="reference" icon="el-icon-delete-solid"></el-button>
</el-popconfirm>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</template>
<style type="text/scss" lang="scss">
</style>
<script>
import {extend, isArray} from "@/utils/extend";
export default {
name: "e-paper",
data() {
return {
isSelect:true
}
},
props:{
value:[String],
vo:Object,
type:String,
danxuanti:{
type:String,
default:''
},
duoxuanti:{
type:String,
default:''
},
panduanti:{
type:String,
default:''
},
correctText:{
type:String,
default:'正确'
},
errorText:{
type:String,
default:'错误'
},
},
watch:{
type( val ){
if(this.value.length == 0){
if(this.panduanti.indexOf(val) != -1)
{
//
//
if(this.paperList.length != 2 || this.paperList[0].title != this.correctText)
{
var obj = [
{
zimu:'A',
title:this.correctText,
point:0
},
{
zimu:'B',
title:this.errorText,
point:0
}
];
this.emitInput(obj);
}
this.isSelect = true;
}else if(this.danxuanti.indexOf(val) == -1 && this.duoxuanti.indexOf(val) == -1)
{
this.isSelect = false;
}else{
if(this.paperList.length == 0)
{
var obj = [
{
zimu:'A',
title:'',
point:0
},
{
zimu:'B',
title:'',
point:0
},
{
zimu:'C',
title:'',
point:0
},
{
zimu:'D',
title:'',
point:0
}
];
this.emitInput(obj);
}
this.isSelect = true;
}
}
}
},
computed: {
paperList(){
var value = this.value;
try{
value = JSON.parse(value);
}catch (e) {
value = [];
}
if(!isArray(value)){
value = [];
}
return value;
}
},
methods: {
updateZimu( paperList )
{
var zimu = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
var result = paperList ? paperList : extend(true,[],this.paperList);
for (var i=0;i<result.length;i++)
{
result[i].zimu = zimu.substr(i,1)
}
this.emitInput(result);
},
updatePaper($event , v , k , key ){
var result = extend(true,[],this.paperList);
var obj = {};
obj[key] = $event;
var nowObj = extend(true,{} , v , obj);
result[k] = nowObj;
this.emitInput(result);
},
emitInput(val){
this.$emit('input' , JSON.stringify(val))
},
addItem(){
var zimu = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
var result = extend(true,[],this.paperList);
var index = result.length;
var obj = {
zimu:zimu.substr(index,1),
title:'',
point:0
}
result.push(obj);
this.emitInput(result);
},
deleteItem(k){
var result = extend(true,[],this.paperList);
result.splice(k,1);
this.updateZimu(result);
}
},
created() {
},
mounted() {
},
destroyed() {
}
}
</script>

@ -0,0 +1,24 @@
<template>
</template>
<style type="text/scss" lang="scss">
@import "./asset/icon/MKPlayer.scss";
</style>
<script>
export default {
name: "e-play-list",
data() {
return {}
},
watch: {},
computed: {},
methods: {},
created() {
},
mounted() {
},
destroyed() {
}
}
</script>

@ -0,0 +1,363 @@
<template>
<div class="v-module-products">
<article>
<div class="pro-btn pro-btn-add" @click="$gotoUrl">
查看
</div>
<div :class="showType">
<div class="image" @click="$gotoUrl">
<e-img-box :src="image" :pb="imageHeight" :is-scale="isScale"></e-img-box>
</div>
<div class="text">
<h2 class="title h4">
<a href="javascript:;" @click="$gotoUrl">{{title}}</a>
</h2>
<sup v-if="price!=''" class="price"> {{price}}</sup>
<span class="description clearfix" v-text="$substr(description , 30)">
</span>
</div>
</div>
</article>
</div>
</template>
<style type="text/scss" scoped lang="scss">
.v-module-products{
article {
position: relative;
transition: all 0.3s;
overflow: hidden;
border: 1px solid #F5F4EF;
margin-left: -1px;
margin-top: -2px;
box-shadow: 0 0 10px rgba(0, 0, 0, 0.05);
border-radius: 8px;
.badge {
position: absolute;
top: 10px;
left: 10px;
line-height: initial;
color: white;
}
sub, sup {
font-size: 100%;
}
.text {
width: 100%;
padding: 10px;
}
.text a:hover {
color: #333;
}
.text .title {
display: block;
margin: 0;
white-space: nowrap;
text-overflow: ellipsis;
overflow: hidden;
font-size: 14px;
margin-bottom: 5px;
}
.text sub,.text sup{
bottom: auto;
top: auto;
display: inline-block;
margin-right: 10px;
}
.text sub{
text-decoration: line-through;
font-weight: 300;
}
.image {
overflow: hidden;
height: auto;
a {
display: block;
}
}
.pro-btn-add {
opacity: 0;
transform: translate3d(100%, 0, 0);
transition: all 0.5s;
}
&:hover {
box-shadow: 0 3px 30px rgba(0, 0, 0, 0.1);
position: relative;
z-index: 22;
.pro-btn-add {
opacity: 1;
transform: translate3d(0, 0, 0);
}
.info > span {
transform: scale(1);
}
}
.info {
display: none;
position: absolute;
width: 35px;
right: 15px;
top: 15px;
margin-right: 0;
margin-top: 5px;
z-index: 3;
a {
position: relative;
display: inline-block;
padding: 0 5px;
background-color: dimgray;
color: white;
text-align: center;
border-radius: 30px;
width: 30px;
height: 30px;
line-height: 30px;
margin-bottom: 5px;
}
a:hover {
background-color: #000000;
color: white;
}
a:hover:after {
position: absolute;
content: attr(data-title);
padding: 5px 6px;
right: 110%;
top: 3px;
white-space: nowrap;
z-index: 20;
background-color: #000000;
color: #fff;
font-size: 10px;
border-radius: 5px;
line-height: normal;
}
.add-favorite.added {
transform: scale(1);
a {
background-color: #e71d36;
}
a:hover:after {
content: attr(data-title-added);
background-color: inherit;
}
}
> span {
display: block;
transition: all 0.3s;
transform: scale(0);
}
> span:nth-child(1) {
transition-delay: 0.1s;
}
> span:nth-child(2) {
transition-delay: 0.2s;
}
> span:nth-child(3) {
transition-delay: 0.3s;
}
}
.figure-list {
display: table;
width: 100%;
}
.figure-list .image,.figure-list .text{
display: table-cell;
vertical-align: middle;
width: 50%;
}
.figure-list .image{
width: 40%;
}
.figure-list .text {
width: 60%;
position: relative;
padding: 0 20px;
vertical-align: top;
padding-top: 20px;
.title {
white-space: inherit;
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
}
.description {
display: block;
margin-top: 15px;
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
}
.price{
position: absolute;
right: 0px;
top: 10px;
}
}
.figure-grid {
.text .description {
display: none;
}
}
.figure-block{
.text .description {
position: relative;
display: none;
height: 80px;
overflow: hidden;
z-index: 1;
padding-top: 5px;
}
.text .description:after {
background: -moz-linear-gradient(top, rgba(255, 255, 255, 0) 0%, white 100%);
/* FF3.6-15 */
background: -webkit-linear-gradient(top, rgba(255, 255, 255, 0) 0%, white 100%);
/* Chrome10-25,Safari5.1-6 */
background: linear-gradient(to bottom, rgba(255, 255, 255, 0) 0%, white 100%);
/* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#00ffffff', endColorstr='#ffffff',GradientType=0 );
/* IE6-9 */
position: absolute;
bottom: 0;
width: 100%;
height: 75px;
content: "";
display: block;
z-index: 2;
}
}
.container {
padding-left: 15px;
padding-right: 15px;
}
.title {
font-weight: 600;
position: relative;
}
.title small {
display: block;
text-transform: none;
color: black;
font-size: 40%;
margin: 5px 0;
}
.price {
margin-bottom: 20px;
}
.pro-btn {
-moz-border-radius: 3px;
-webkit-border-radius: 3px;
display: inline-block;
font-weight: 400;
color: #212529;
text-align: center;
vertical-align: middle;
user-select: none;
background-color: transparent;
border: 1px solid transparent;
padding: 0.375rem 0.75rem;
font-size: 1rem;
line-height: 1.5;
border-radius: 12px;
transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
}
.pro-btn.pro-btn-add {
background: #3c5570;
position: absolute;
overflow: hidden;
color: white;
bottom: 20px;
right: 10px;
border: 0;
font-size: 12px;
cursor: pointer;
z-index: 9;
}
.pro-btn.pro-btn-add:hover {
color: white;
}
.pro-btn:hover {
color: #212529;
text-decoration: none;
}
}
}
@media (min-width: 992px) {
.v-module-products article {
box-shadow: 0 3px 30px rgba(0, 0, 0, 0.1);
.info a {
margin-bottom: 10px;
}
.info {
display: block;
}
.figure-list .image {
padding: 0;
}
}
}
@media (min-width: 768px) {
.v-module-products article .badge {
top: 20px;
left: 20px;
}
}
</style>
<script>
import gotoUrl from "../mixins/gotoUrl";
export default {
name: "e-module-products",
data() {
return {}
},
props:{
image:String,
isScale:{
type:Boolean,
default:false
},
imageHeight:{
type:[String,Number],
default:80
},
title:String,
price:[String,Number],
description:[String,Number],
type:{
type:String,
default:'grid'
}
},
mixins:[gotoUrl],
watch: {},
computed: {
showType(){
switch (this.type) {
case 'grid':
return 'figure-grid';
default:
return 'figure-list';
}
}
},
methods: {
},
created() {
},
mounted() {
},
destroyed() {
}
}
</script>

@ -0,0 +1,86 @@
<template>
<div class="MKPlayer-progress-box" @mousedown="mousedown">
<span class="MKPlayer-progress-slot"></span>
<span class="MKPlayer-progress-progress" :style="{width:value+'%'}"></span>
<span class="MKPlayer-progress-postion" :style="{left:value+'%'}"></span>
</div>
</template>
<style type="text/scss" lang="scss">
</style>
<script>
var {addEventListener} = require('add-dom-event-listener')
export default {
name: "progress",
data:function () {
return {
offset:{
x:0,
y:0,
width:0
},
isMove:false,
};
},
props:{
value:[Number],
lock:[Boolean]
},
methods:{
offsetLeft (element) {
var actualLeft = element.offsetLeft;
var current = element.offsetParent;
while (current) {
actualLeft += current.offsetLeft;
current = current.offsetParent;
}
return actualLeft;
},
mousedown (e) {
//
if(this.lock)return;
this.isMove = true;
this.offset.x = e.pageX;
this.offset.y = e.pageY;
this.offset.width = this.$el.offsetWidth;
this.offset.left = this.offsetLeft(this.$el)
},
mousemove(e){
var offset = this.offset;
var pageX = e.pageX;
var posX = pageX;
if(posX > offset.left + offset.width){
posX = offset.left + offset.width;
}
if(posX < offset.left)
{
posX = offset.left;
}
posX -= offset.left;
//
var val = ((posX / offset.width) * 100).toFixed(2);
this.$emit('input' , val)
this.$emit('changed' , val)
},
},
mounted() {
this.handlerMove = addEventListener(document.body , 'mousemove' , (e)=>{
if(!this.isMove){return;}
this.mousemove(e);
});
this.handlerUp = addEventListener(document.body , 'mouseup' , (e)=>{
if(!this.isMove){return;}
this.mousemove(e);
this.isMove = false;
});
},
beforeDestroy() {
this.handlerMove.remove();
this.handlerUp.remove();
}
}
</script>

@ -0,0 +1,55 @@
<template>
<el-radio-group v-model="select" @change="changeSelect" :disabled="disabled">
<el-radio v-for="v in list" :label="v.zimu"> {{ v.zimu }} {{ v.title }} </el-radio>
</el-radio-group>
</template>
<script>
import {findObject} from "@/utils/utils";
export default {
name: "t-radio",
data () {
return {
select:'',
}
},
props:{
obj:Object,
paper:String,
daan:String,
disabled:{
type:Boolean,
default:false
}
},
computed:{
list(){
if(!this.paper){
return [];
}
return eval("("+this.paper+")")
}
},
methods:{
changeSelect(val){
if(val){
var obj = findObject(this.list , r=> r.zimu == val );
this.obj.zimu = obj.zimu;
this.obj[this.daan] = obj.title;
this.obj.defen = obj.point === undefined ? obj.defen : obj.point;
}else{
this.obj.zimu = '';
this.obj[this.daan] = '';
this.obj.defen = 0;
}
}
}
}
</script>
<style scoped>
</style>

@ -0,0 +1,176 @@
<template>
<div class="e-select-list">
<div class="select-update">
<div>
<el-select @change="$emit('input' , $event)" :value="value" filterable>
<el-option :value="0" label="请选择"></el-option>
<el-option :value="v.id" :label="getLabel(v)" v-for="v in list" :key="v.id"></el-option>
</el-select>
</div>
<div>
关键词
<el-input style="width: 150px" v-model="searchMsg.keyword" />
</div>
<div>
<slot name="search"></slot>
</div>
<!--<div class="search-list" ref="search">
</div>-->
<div class="search-btn">
<el-button icon="el-icon-search" @click="searchTable(true)">
搜索
</el-button>
</div>
</div>
<div class="" v-if="value!=0">
<slot>
</slot>
</div>
</div>
</template>
<style type="text/scss" lang="scss">
.e-select-list{
.select-update{
display: flex;
flex-wrap:wrap;
>div{
margin-right: 10px;
}
>div:last-child{
margin-right: 0px;
}
}
.search-list{
}
}
</style>
<script>
import api from "@/api";
import { empty, isArray ,isObject} from "@/utils/extend";
import {findObject} from "@/utils/utils";
export default {
name: "e-select-list",
data() {
return {
list:[],
searchMsg:{
keyword:''
}
}
},
props:{
value:[String,Number],
model:{
type:Object,
required:true
},
module:{
type:String,
required: true
},
selectUpdate:[String,Array],
searchUpdate:{
type:[String,Array],
default:''
},
showField:{
type:[String,Array]
}
},
watch: {
value(val){
this.selectOption(val);
}
},
computed: {
},
methods: {
selectOption(value){
var v = findObject(this.list , r=>r.id == value );
if( v !== false ){
this.updateModel(v);
}else{
if(value == 0){
this.updateModel({});
}else{
this.$post(api.search.table , {id:value}).then(res=>{
if(!empty(res) && isObject(res)){
this.list.push(res);
this.updateModel(res);
}
}).catch(err=>{
this.$message.error(err.message)
})
}
}
},
updateModel(v){
var field = isArray(this.selectUpdate) ? this.selectUpdate : this.selectUpdate.split(',');
for (var i=0;i<field.length;i++)
{
var f = field[i];
if( f ){
var def = /(^[0-9]+$)/.test(this.model[f]) && this.model[f].length<11 ? 0 : '';
this.model[f] = v[f] !== undefined ? v[f] : def;
}
}
},
getLabel(v){
var result = '';
var field = [];
if(this.showField){
field = isArray(this.showField) ? this.showField : this.showField.split(',').filter(v=>!empty(v))
}else{
field = isArray(this.selectUpdate) ? this.selectUpdate : this.selectUpdate.split(',')
}
//var field = isArray(this.selectUpdate) ? this.selectUpdate : this.selectUpdate.split(',')
for (var i=0;i<field.length;i++)
{
var f = field[i];
if(f && v[f]){
result += v[f]+' - ';
}
}
return result;
},
searchTable(isEmit){
var where = {};
var field = isArray(this.selectUpdate) ? this.selectUpdate : this.selectUpdate.split(',')
var ext = isArray(this.searchUpdate) ? this.searchUpdate : this.searchUpdate.split(',')
var fs = field.concat(ext).filter(f=>f!='');
where[fs.join('|')] = [ 'like' , '%'+this.searchMsg.keyword+'%'];
this.$emit('update-where' , where);
return new Promise((resolve, reject) => {
this.$post(api.search.select , {
table:this.module,
where:JSON.stringify(where)
}).then(res=>{
if(isEmit){
this.$emit('input' , 0);
}
this.list = res;
resolve(res)
}).catch(err=>{
reject(err.message);
});
});
}
},
created() {
this.searchTable().then(res=>{
if(this.value){
this.selectOption(this.value)
}
});
},
mounted() {
},
destroyed() {
}
}
</script>

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save