基于javaweb+mysql的ssm鲜花商城系统(java+ssm+jsp+jquery+mysql)
私信源码获取及调试交流
运行环境
Java≥8、MySQL≥5.7、Tomcat≥8
开发工具
eclipse/idea/myeclipse/sts等均可配置运行
适用
课程设计,大作业,毕业设计,项目练习,学习演示等
功能说明
基于javaweb的SSM鲜花商城系统(java+ssm+jsp+jquery+mysql)
项目介绍
本项目分为前后台,前台为普通用户角色,后台为管理员角色;
管理员角色包含以下功能:
会员信息管理,售后管理,库存管理,查看营业额统计,查看销售量,查询顾客活跃度,留言管理,管理关于我们,管理员登录,管理滚动图片,类别管理,订单管理,资讯管理,鲜花管理等功能。
用户角色包含以下功能:
修改个人资料,发表留言,提交订单,提交评论,查看售后申请,查看商品详情,查看我的收藏,查看我的订单,查看我的购物车,查看留言板,查看鲜花分类,用户登录,确认支付等功能。
环境需要
1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。
2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA;
3.tomcat环境:Tomcat 7.x,8.x,9.x版本均可
4.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS;
5.是否Maven项目: 否;查看源码目录中是否包含pom.xml;若包含,则为maven项目,否则为非maven项目;
6.数据库:MySql 5.7、8.0等版本均可;
技术栈
-
后端:Spring+springmvc+mybatis
-
前端:JSP+css+javascript+jQuery
使用说明
- 使用Navicat或者其它工具,在mysql中创建对应sql文件名称的数据库,并导入项目的sql文件;
2.使用IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven;
若为maven项目,导入成功后请执行maven clean;maven install命令,配置tomcat
-
将项目中db.properties配置文件中的数据库配置改为自己的配置;
-
运行项目,在浏览器中输入http://localhost:8080/ssm_zxxianhuashop/ 登录;
用户账号/密码: user/123456
管理员账号/密码:admin/admin
if (value.length() > 0) value = value.substring(0, value.length() - 3);
if (rsmd.getColumnTypeName(j).equals("int")) {
sql += rsmd.getColumnName(j) + "=" + value + ",";
} else {
sql += rsmd.getColumnName(j) + "='" + value + "',";
}
} else {
if (extmap.get(rsmd.getColumnName(j)) != null) {
if (rsmd.getColumnTypeName(j).equals("int")) {
sql += rsmd.getColumnName(j) + "=" + extmap.get(rsmd.getColumnName(j)) + ",";
} else {
sql += rsmd.getColumnName(j) + "='" + extmap.get(rsmd.getColumnName(j)) + "',";
}
}
}
}
sql = sql.substring(0, sql.length() - 1);
sql += " where id=" + request.getParameter("id");
System.out.println(sql);
Statement st1 = conn.createStatement();
st1.execute(sql);
st1.close();
rs.close();
st.close();
} catch (SQLException e) {
e.printStackTrace();
}
String str = "";
if (!reflush)
str += "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n";
str += "<script language=javascript>\n";
if (alert) {
str += "alert('操作成功');\n";
}
if (reflush) {
str += "parent.location=parent.location;\n";
}
String optionstr = "";
for(String str:zdname.split(";"))
{
String zdstr = str.split("~")[0];
String zdnamestr = str.split("~")[1].equals("无名")?"":(str.split("~")[1]+":");
optionstr+=zdnamestr+permap.get(zdstr)+" - ";
}
if(optionstr.length()>0)optionstr=optionstr.substring(0,optionstr.length()-3);
String nbs = "";
if(i>0)nbs=" ";
checkbox+="<label>"+nbs+"<input type='checkbox' name='"+name+"' value=\""+optionstr+"\">"+optionstr+"</label> \n";
checkbox+="<label> - "+nstr+" <input type='text' size='5' name='"+optionstr+"' value=\"\"></label><br />\n";
i++;
}
checkbox+="<input type=hidden name='"+name+"' value='' /><input type=hidden name='dk-"+name+"-value' value='"+nstr+"' />";
return checkbox;
}
public static String getFileUpInfo()
{
String jscode = "";
jscode+="<font οnclick=\"uploaddoc()\" src=\"js/nopic.jpg\" style='cursor:hand' id=txt >点击此处上传</font>";
jscode+=" <input type=text readonly style='border:0px' size=30 name=\"docname\" id=\"docname\" value=\"\" />";
return jscode;
}
public static String tform(HashMap map)
{
String jscode = "";
try{
jscode+="<script type=\"text/javascript\">\n";
jscode+="function getPvalue()\n";
jscode+="{\n";
Set set = map.entrySet();
Iterator it = set.iterator();
while(it.hasNext())
{
String pm=((Object)it.next()).toString();
String str1 = "";
String str2 = "";
jscode+="<img style=\"cursor: hand\" οnclick=\"uploadimg()\" src=\"/vehiclemanagementsys/js/nopic.jpg\" id=txt height=\""+height+"\"/>";
jscode+="<input type=hidden name=\"filename\" id=\"filename\" value=\"\" />";
return jscode;
}
public static String getImgUpInfo2(int height)
{
String jscode = "";
jscode+="<img style=\"cursor: hand\" οnclick=\"uploadimg2()\" src=\"/vehiclemanagementsys/js/nopic.jpg\" id=txt2 height=\""+height+"\"/>";
jscode+="<input type=hidden name=\"filename2\" id=\"filename2\" value=\"\" />";
return jscode;
}
public static String getImgUpInfo3(int height)
{
String jscode = "";
jscode+="<img style=\"cursor: hand\" οnclick=\"uploadimg3()\" src=\"/vehiclemanagementsys/js/nopic.jpg\" id=txt3 height=\""+height+"\"/>";
jscode+="<input type=hidden name=\"filename3\" id=\"filename3\" value=\"\" />";
return jscode;
}
public static String getImgUpInfo4(int height)
{
String jscode = "";
jscode+="<img style=\"cursor: hand\" οnclick=\"uploadimg4()\" src=\"/vehiclemanagementsys/js/nopic.jpg\" id=txt4 height=\""+height+"\"/>";
jscode+="<input type=hidden name=\"filename4\" id=\"filename4\" value=\"\" />";
return jscode;
}
public static String getImgUpInfo5(int height)
{
String jscode = "";
jscode+="<img style=\"cursor: hand\" οnclick=\"uploadimg5()\" src=\"/vehiclemanagementsys/js/nopic.jpg\" id=txt5 height=\""+height+"\"/>";
jscode+="<input type=hidden name=\"filename5\" id=\"filename5\" value=\"\" />";
PageHelper.startPage(pageNum,10);
List<Product> list = productDAO.selectAll(map);
for(Product product:list){
Category fcategory = categoryDAO.findById(Integer.parseInt(product.getFid()));
Category scategory = categoryDAO.findById(Integer.parseInt(product.getSid()));
product.setFcategory(fcategory);
product.setScategory(scategory);
}
PageInfo<Product> pageInfo = new PageInfo<Product>(list);
request.setAttribute("key", key);
request.setAttribute("fid", fid);
request.setAttribute("sid", sid);
request.setAttribute("pageInfo", pageInfo);
request.setAttribute("fcategorylist", fcategorylist);
saveobject.getCategoryObject(request);
return "admin/productmsg";
}
//查询商品类别
@RequestMapping("/admin/categorySelect")
public String categorySelect(HttpServletRequest request){
HashMap map = new HashMap();
List<Category> list = categoryDAO.selectFcategory(map);
for(Category category:list){
List<Category> scategorylist = categoryDAO.selectScategory(category.getId());
category.setScategorylist(scategorylist);
}
request.setAttribute("list", list);
return "admin/productadd";
}
//商品添加
@RequestMapping("admin/productAdd")
public String productAdd(Product product,HttpServletRequest request){
User user = (User)request.getSession().getAttribute("admin");
String productno = Info.getAutoId();
product.setProductno(productno);
product.setSaver(String.valueOf(user.getId()));
product.setIssj("no");
product.setIstj("no");
product.setProductid("-1");
product.setDelstatus("0");
productDAO.add(product);
return "redirect:productMsg.do";
}
@RequestMapping("admin/showFubi")
public String showFubi(int id,HttpServletRequest request){
Product product = productDAO.findById(id);
request.setAttribute("fubi", product);
return "admin/fubiedit";
public static String getOrderNo(){
String dateString="";
try{//yyyyMMddHHmmss
java.text.SimpleDateFormat formatter=new java.text.SimpleDateFormat("MMddHHmmss");
java.util.Date currentTime_1=new java.util.Date();
dateString=formatter.format(currentTime_1);
}catch(Exception e){
}
return "DD"+dateString;
}
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;
}
public static String getGBKStr(String str) throws UnsupportedEncodingException{
if(str==null){
return "";
}
return new String(str.getBytes("ISO-8859-1"),"GBK");
}
public static String getGB2312Str(String str) throws UnsupportedEncodingException{
if(str==null){
return "";
}
return new String(str.getBytes("ISO-8859-1"),"gb2312");
}
/**
* @param String date
ordermsgdetails.setNum(cart.getNum());
ordermsgdetails.setMemberid(String.valueOf(member.getId()));
ordermsgdetails.setProductid(String.valueOf(cart.getProductid()));
ordermsgdetails.setStatus(fkstatus);
ordermsgdetailsDAO.add(ordermsgdetails);
cartDAO.delCart(cart.getId());
}
ordermsg.setTotal(ddfee);
ordermsgDAO.add(ordermsg);
}
return "redirect:orderLb.do";
}
}
//前台订单列表
@RequestMapping("orderLb")
public String orderLb(@RequestParam(defaultValue = "1",value = "pageNum") Integer pageNum,HttpServletRequest request) {
PageHelper.startPage(pageNum, 5);
Member member = (Member) request.getSession().getAttribute(
"sessionmember");
String msg = request.getParameter("msg")==null?"":request.getParameter("msg");
HashMap map = new HashMap();
map.put("memberid", member.getId());
map.put("delstatus", "0");
map.put("goodstype", "购买商品");
List<Ordermsg> list = ordermsgDAO.selectAll(map);
for(Ordermsg ordermsg:list){
Member mem = memberDAO.findById(Integer.parseInt(ordermsg.getMemberid()));
ordermsg.setMember(mem);
HashMap map1 = new HashMap();
map1.put("ddno", ordermsg.getDdno());
List<Ordermsgdetails> dddetailist = ordermsgdetailsDAO.selectAll(map1);
for(Ordermsgdetails orderdetail:dddetailist){
orderdetail.setProduct(productDAO.findById(Integer.valueOf(orderdetail.getProductid())));
}
ordermsg.setDddetailist(dddetailist);
if(ordermsg.getAddr()!=null&&!ordermsg.getAddr().equals("")){
Address address = addressDAO.findById(Integer.parseInt(ordermsg.getAddr()));
ordermsg.setAddress(address);
}
//查看物流信息
saveobject.getWlrecord(ordermsg.getDdno(), request);
List<Wlrecord> wllist = (List<Wlrecord>)request.getAttribute("wllist");
str += "alert('操作成功');\n";
}
if (reflush) {
str += "parent.location=parent.location;\n";
}
str += "</script>";
PrintWriter wrt = null;
try {
wrt = response.getWriter();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
wrt.write(str);
}
return "";
}
public void delete(HttpServletRequest request, String tablename) {
int i = 0;
try {
String did = request.getParameter("did");
if (did == null) did = request.getParameter("scid");
if (did != null) {
if (did.length() > 0) {
Statement st = conn.createStatement();
st.execute("delete from " + tablename + " where id=" + did);
st.close();
}
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public String getCols(String table) {
String str = "";
Connection conn = this.getConn();
try {
Statement st = conn.createStatement();
ResultSet rs = st.executeQuery("select * from " + table);
ResultSetMetaData rsmd = rs.getMetaData();
int i = rsmd.getColumnCount();
for (int j = 2; j <= i; j++) {
str += rsmd.getColumnName(j) + ",";
}
if(index!=null){
pageindex = Integer.parseInt(index);
}
Page<Object> page = PageHelper.startPage(pageindex,6);
List<Message> list = messageDAO.searchMessage(key);
for(int i=0;i<list.size();i++){
Member m = memberDAO.findById(list.get(i).getMemberid());
list.get(i).setMember(m);
}
request.setAttribute("list", list);
request.setAttribute("key", key);
request.setAttribute("index", page.getPageNum());
request.setAttribute("pages", page.getPages());
request.setAttribute("total", page.getTotal());
return "admin/messagesearchlist";
}
//留言回复
@RequestMapping("/admin/updateMessage")
public String updateMessage(Message message,HttpServletRequest request) {
messageDAO.update(message);
return "redirect:messageList.do";
}
//删除留言
@RequestMapping("/admin/messageDelAll")
public String updateMessage(HttpServletRequest request) {
String vals = request.getParameter("vals");
String[] val = vals.split(",");
for(int i=0;i<val.length;i++){
messageDAO.delete(Integer.parseInt(val[i]));
}
return "redirect:messageList.do";
}
//删除留言
@RequestMapping("/admin/messageDel")
public String messageDel(int id,HttpServletRequest request) {
messageDAO.delete(id);
return "redirect:messageList.do";
}
}
}
@Controller
public class MemberController extends BaseController {
@Resource
MemberDAO memberDAO;
@Resource
CategoryDAO categoryDAO;
@Resource
UserDAO userDAO;
@Resource
Saveobject saveobject;
}
Enumeration enumeration = request.getParameterNames();
String names = ",";
while (enumeration.hasMoreElements()) {
names += enumeration.nextElement().toString() + ",";
}
try {
Statement st = conn.createStatement();
for (String str : collist) {
if (names.indexOf("," + str + ",") > -1) {
String[] values = request.getParameterValues(str);
String value = "";
for (String vstr : values) {
if (vstr == null) vstr = "";
if (vstr.equals("null")) vstr = "";
if (vstr.trim().equals("")) continue;
if (request.getParameter(vstr) != null && !"".equals(request.getParameter(vstr)) && request.getParameter("dk-" + str + "-value") != null) {
String dkv = request.getParameter(vstr);
String dknamevalue = request.getParameter("dk-" + str + "-value");
vstr += " - " + dknamevalue + ":" + dkv;
}
value += vstr + " ~ ";
}
if (value == null) value = "";
if (value.equals("null")) value = "";
if (value.length() > 0) value = value.substring(0, value.length() - 3);
if (typemap.get(str + "---").equals("int")) {
sql += (value.equals("") ? -10 : value) + ",";
} else {
sql += "'" + (value.equals("null") ? "" : value) + "',";
}
} else {
if (typemap.get(str + "---").equals("int")) {
sql += (extmap.get(str) == null ? "" : extmap.get(str)) + ",";
} else {
sql += "'" + (extmap.get(str) == null ? "" : extmap.get(str)) + "',";
}
}
}
sql = sql.substring(0, sql.length() - 1) + ")";
System.out.println(sql);
this.commOper(sql);
@Controller
public class ProductController extends BaseController {
@Resource
ProductDAO productDAO;
@Resource
CategoryDAO categoryDAO;
@Resource
MemberDAO memberDAO;
@Resource
CommentDAO commentDAO;
@Resource
OrdermsgDAO ordermsgDAO;
@Resource
Saveobject saveobject;
@Resource
UserDAO userDAO;
//积分商品添加
@RequestMapping("/admin/fubiAdd")
public String fubiAdd(Product product,HttpServletRequest request){
User user = (User)request.getSession().getAttribute("admin");
String productno = Info.getAutoId();
product.setProductno(productno);
product.setSaver(String.valueOf(user.getId()));
product.setIssj("no");
product.setIstj("no");
product.setProductid("-1");
product.setDelstatus("0");
productDAO.add(product);
return "redirect:fubiList.do";
}
//后台查询积分商品列表
@RequestMapping("/admin/fubiList")
public String fubiList(@RequestParam(defaultValue = "1",value = "pageNum") Integer pageNum,HttpServletRequest request) {
String key = request.getParameter("key");
HashMap map = new HashMap();
map.put("key", key);
map.put("productid", "-1");
map.put("leibie", "积分商品");
PageHelper.startPage(pageNum,10);
//推荐商品
@RequestMapping("admin/udateIstj")
public String udateIstj(HttpServletRequest request){
String id = request.getParameter("id");
String istj = request.getParameter("type");
String shop = request.getParameter("shop");
Product product = productDAO.findById(Integer.parseInt(id));
product.setIstj(istj);
productDAO.update(product);
return "redirect:productMsg.do";
}
//商品上下架
@RequestMapping("admin/udateIssj")
public String udateIssj(HttpServletRequest request){
String id = request.getParameter("id");
String shop = request.getParameter("shop");
Product product = productDAO.findById(Integer.parseInt(id));
if(product.getIssj().equals("yes")){
product.setIssj("no");
}else{
product.setIssj("yes");
}
productDAO.update(product);
return "redirect:productMsg.do";
}
@RequestMapping("admin/updatefbIssj")
public String updatefbIssj(HttpServletRequest request){
String id = request.getParameter("id");
Product product = productDAO.findById(Integer.parseInt(id));
if(product.getIssj().equals("yes")){
product.setIssj("no");
}else{
product.setIssj("yes");
}
productDAO.update(product);
return "redirect:fubiList.do";
}
//特价页面
@RequestMapping("admin/skiptjprice")
public String skiptjprice(HttpServletRequest request){
String id = request.getParameter("id");
Product product = productDAO.findById(Integer.parseInt(id));
request.setAttribute("product", product);
return "admin/tjprice";
}
//更新特价
@RequestMapping("admin/tjpriceUpdate")
String orderid = request.getParameter("orderid");
Address address = addressDAO.findById(id);
address.setDelstatus("1");
addressDAO.update(address);
return "redirect:skipFukuan.do?id="+orderid;
}
//更新默认
@RequestMapping("updateIsmr")
public String updateIsmr(int id, HttpServletRequest request){
Member member = (Member)request.getSession().getAttribute("sessionmember");
String orderid = request.getParameter("orderid");
HashMap map = new HashMap();
map.put("memberid", member.getId());
List<Address> list = addressDAO.selectAll(map);
for(Address address:list){
address.setIsmr("no");
addressDAO.update(address);
}
Address addr = addressDAO.findById(id);
addr.setIsmr("yes");
addressDAO.update(addr);
return "redirect:skipFukuan.do?id="+orderid;
}
}
//删除帖子评论
@RequestMapping("/admin/bbsplDelforadmin")
public String bbsplDelforadmin(int id,int fid, HttpServletRequest request,HttpServletResponse response){
bbsDAO.delete(id);
return "redirect:bbsplList.do?fid="+fid;
}
//删除
@RequestMapping("/admin/bbsDelforadmin")
public String bbsDelforadmin(int id, HttpServletRequest request,HttpServletResponse response){
Bbs bbs = bbsDAO.findById(id);
HashMap map = new HashMap();
map.put("fid",id);
List<Bbs> list = bbsDAO.selectAll(map);
for(Bbs b:list){
bbsDAO.delete(b.getId());
}
bbsDAO.delete(id);
return "redirect:bbsList.do";
}
//会员帖子列表
@RequestMapping("mybbsList")
public String mybbsList(@RequestParam(defaultValue = "1",value = "pageNum") Integer pageNum,HttpServletRequest request) {
Member member = (Member) request.getSession().getAttribute("sessionmember");
String key = request.getParameter("key");
HashMap map = new HashMap();
map.put("mid", member.getId());
map.put("fid", "0");
PageHelper.startPage(pageNum, 10);
List<Bbs> list = bbsDAO.selectAll(map);
for(Bbs bbs:list){
bbs.setMember(memberDAO.findById(bbs.getMid()));
}
PageInfo<Bbs> pageInfo = new PageInfo<Bbs>(list);
request.setAttribute("key",key);
request.setAttribute("pageInfo",pageInfo);
saveobject.getCart(request);
saveobject.getCategoryObject(request);
return "mybbslist";
}
//前台查询帖子列表
@RequestMapping("bbsLb")
public String bbsLb(@RequestParam(defaultValue = "1",value = "pageNum") Integer pageNum,HttpServletRequest request) {
String key = request.getParameter("key");
HashMap map = new HashMap();
map.put("key", key);
list = select("select table_name from INFORMATION_SCHEMA.tables");
else
e.printStackTrace();
}
return list;
}
public List<List> selectforlist(String sql) {
List<List> list = new ArrayList();
try {
Statement st = conn.createStatement();
ResultSet rs = st.executeQuery(sql);
ResultSetMetaData rsmd = rs.getMetaData();
while (rs.next()) {
List<String> list2 = new ArrayList();
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 = "";
list2.add(str);
} else
list2.add(rs.getString(j));
}
list.add(list2);
}
rs.close();
st.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return list;
}
public void close() {
}
/**
* 执行一条查询sql,以 List<hashmap> 的形式返回查询的记录,记录条数,和从第几条开始,由参数决定,主要用于翻页
* pageno 页码 rowsize 每页的条数
*/
public List<HashMap> select(String sql, int pageno, int rowsize) {
List<HashMap> list = new ArrayList<HashMap>();
}else if(suc.equals("err")){
request.setAttribute("suc", "没有购买记录,评论失败");
}
//评论
HashMap mmm = new HashMap();
mmm.put("productid", product.getId());
List<Comment> commentlist = commentDAO.selectAll(mmm);
for(Comment comment:commentlist){
Member member = memberDAO.findById(Integer.parseInt(comment.getMemberid()));
comment.setMember(member);
}
request.setAttribute("product", product);
request.setAttribute("commentlist", commentlist);
saveobject.getCart(request);
saveobject.getCategoryObject(request);
return "fubix";
}
//跳转到预订页面
@RequestMapping("skipZycar")
public String skipZycar(int id,HttpServletRequest request){
Member member = (Member)request.getSession().getAttribute("sessionmember");
if(member!=null){
Product product = productDAO.findById(id);
//商品类别
List<Category> ctlist = categoryDAO.selectAll();
request.setAttribute("ctlist", ctlist);
request.setAttribute("product", product);
String err = request.getParameter("err");
if(err!=null){
request.setAttribute("msg", "帐户余额不足");
}
return "zycar";
}else{
return "redirect:productDetails.do?id="+id+"&msg=msg";
}
}
//商品编辑
if(bbb.getCardtype().equals("普卡")){
zk=1.0;
}else if(bbb.getCardtype().equals("银卡")){
zk=0.9;
}else if(bbb.getCardtype().equals("金卡")){
zk=0.88;
}else if(bbb.getCardtype().equals("白金卡")){
zk=0.85;
}
return zk;
}
public void getWlrecord(String ddno,HttpServletRequest request){
HashMap map = new HashMap();
map.put("ddno", ddno);
List<Wlrecord> wllist = wlrecordDAO.selectAll(map);
request.setAttribute("wllist", wllist);
}
public int getInvertory(int productid,HttpServletRequest request){
User admin = (User)request.getSession().getAttribute("admin");
int kc = 0;
HashMap map = new HashMap();
map.put("productid", productid);
map.put("type", "in");
int innum = 0;
int outnum = 0;
List<Inventory> inlist = inventoryDAO.selectAll(map);
for(Inventory inventory:inlist){
innum+=inventory.getNum();
}
map.put("type", "out");
List<Inventory> outlist = inventoryDAO.selectAll(map);
for(Inventory inv:outlist){
outnum+=inv.getNum();
}
if(innum>outnum){
kc=innum-outnum;
}
return kc;
}
public int getfdInvertory(int productid,String saver,HttpServletRequest request){
int kc = 0;
HashMap map = new HashMap();
map.put("goodsid", productid);
map.put("saver",saver);