用Java EE技术实现产品售后服务系统

作者主页:编程千纸鹤

作者简介:Java、前端、Python开发多年,做过高程,项目经理,架构师

主要内容:Java项目开发、Python项目开发、大学数据和AI项目开发、单片机项目设计、面试技术整理、最新技术分享

收藏点赞不迷路  关注作者有好处

文末获得源码

 项目编号:BS-XX-202

一,环境介绍

语言环境:Java:  jdk1.8

数据库:Mysql: mysql5.7

应用服务器:Tomcat:  tomcat8.5.31

开发工具:IDEA或eclipse

二,项目简介

我国信息产业、企业售后服务发展迅速,电商的发展超出了所有人都想象,与此同时也带来了诸多的问题。飞速发展的交易额,带来了大量的GDP增长,然而光鲜的背后是每天无数客服手忙脚乱的为顾客服务。由于顾客对自身生活质量要求越来越高,售后管理业必须随着人们生活水平的提高而改变。伴随着购物规模的不断扩大,售后的各项反馈、投诉,对售后的要求等都将越来越复杂,售后管理系统的自身的管理工作量也将越来越大。人工服务不能做到及时有效的反映,以及做出正确的应对以及保存,迫切需要一个系统来解决这些问题。本项目的出发点力在解决这一困难!

本系统的主要任务是为基于JavaEE技术和SQL Server数据库的售后服务管理系统建立一个企业设计。主要技术要求包括:掌握web开发所需的技术,包括HTML和JSP动态网页编程技术,SQL Server数据库知识,等等。主要实现企业售后服务信息的增删改查,顾客信息的增删改查,顾客留言信息的及时反馈保存,管理员帐号增删、登录等。该系统还可以方便制造商跟踪产品的质量和服务和管理以及购买者对企业的建议提交。

自进入现代社会以来,世界各地越来越密切,文化和经济交流日益频繁,带来了信息的爆炸性增长,近年来随着信息高速公路的快速发展迅速变化,每个人可以访问世界的任何角落,要获取的信息量大幅增长,外部环境的快速变化,完全人为地记录信息变得非常不切实际。如何收集足够的信息,及时快速的处理信息,快速存储和编辑信息,信息技术的发展已经成为现代社会的常见问题。电脑解决了外观上的问题。可以使用大量信息收集,编辑或调查易于使用和快速编辑,计算机和快速处理。同时,电脑硬件的发展也逐渐适应了现代社会信息量的快速增长,信息的快速更新,随时随地改变需求的趋势。可以预见未来信息系统的发展不仅仅是简单的数据处理,而且可以得出工具的结论,可以根据不同的条件从所有可用的信息中筛选,排序,分析,为用户提供一个最终结论,例如现在在实验治疗系统开发中包括开发过程系统简单,数据处理结果小,报表系统进一步发展成为最终决策专家系统的支持系统,甚至在一些领域已成为战略信息系统,可以支持领导层面的竞争战略。这是电脑发展的未来趋势。

目前在国内,售后系统架构主要分为B/S和C/S俩种,B/S是通过浏览器方式来浏览相关信息,进行一系列的相关操作。因为现代社会的信息更新速度快,更新频繁,同时对信息的安全性有很高的要求,所以各公司的内部系统大多采用这种模式,我要做的这个仅仅是为客户投诉,售后服务的,应该公开面向社会,所以,应当采用更稳定的C/S模式。

该系统采用三层结构,这是由客户端和用户通过浏览器完成,并且浏览器的表达逻辑由JSP页负责。

图2-1系统模式图

三,系统展示

1管理登陆

当系统登陆时,首先出现的是一个用户登陆的界面,主要是维护系统的安全性和完整性。如下图所示:

图4-12系统主页面

主要代码如下:

定义一个窗体

           setTitle("售后管理系统登录");

           label.setText("用  户  名:");

           label_1.setText("密      码:");

           login.setText("登录");

    reset.setText("重置");

    panel_1.add(reset);

生成验证码

public String getCheckCode(){

       Random random = new Random();

       String sRand="";

       for (int i=0;i<4;i++){

        String rand=String.valueOf(random.nextInt(10));

        sRand+=rand;

       }

        return sRand;

    }

4.4.2 售后服务分类管理

管理员可以对售后服务进行分类,包括对售后服务类别的添加、删除、修改等操作。界面如下图所示:

图4-13系统管理界面

主要代码如下:

x= new x();

       x.open();

       try{

           int i = x.executeUpdate(sql);

           if(i == 1)

              return Constant.SUCCESS;

           else

              return Constant.SYSTEM_ERROR;

       }catch(Exception e){

           e.printStackTrace();

           return Constant.SYSTEM_ERROR;

       }finally{

           x.close();

       }

4.4.3 售后服务信息管理

系统分为管理员和普通用户,管理员权限较高,可对售后服务信息进行管理,包括增、删、修等操作。下图为相关界面:

增加

public int addEmp(String name,String sex,String bir,String departs,String zhiwu,String tel,String address,String remark){

       String sql="insert into emp(name,sex,bir,departs,zhiwu,tel,address,remark,addtime) " +

           "values('"+name+"','"+sex+"','"+bir+"','"+departs+"','"+zhiwu+"','"+tel+"','"+address+"','"+remark+"','"+date+"') ";

       DBO dbo = new DBO();

       dbo.open();

       try{

           int i = dbo.executeUpdate(sql);

           if(i == 1)

              return Constant.SUCCESS;

           else

              return Constant.SYSTEM_ERROR;

       }catch(Exception e){

           e.printStackTrace();

           return Constant.SYSTEM_ERROR;

       }finally{

           dbo.close();

       }

}

修改

public int upEmp(String id,String name,String sex,String bir,String departs,String zhiwu,String tel,String address,String remark){

       String sql="update emp set name='"+name+"',sex='"+sex+"',bir='"+bir+"',departs='"+departs+"',zhiwu='"+zhiwu+"',"+"tel='"+tel+"',address='"+address+"',remark='"+remark+"'  where id='"+id+"' ";

       DBO dbo = new DBO();

       dbo.open();

       try{

           int i = dbo.executeUpdate(sql);

           if(i == 1)

              return Constant.SUCCESS;

           else

              return Constant.SYSTEM_ERROR;

       }catch(Exception e){

           e.printStackTrace();

           return Constant.SYSTEM_ERROR;

       }finally{

           dbo.close();

       }

   }  

图4-14售后服务信息管理

4.4.4 投诉信息管理

管理员还可以对客户留言的投诉信息进行回复或者删除操作,相关界面如下:

删除留言

    public int delGuestBook(int id[]){

       DBO dbo=new DBO();

       dbo.open();

       try{

           for(int i = 0;i<id.length;i++){

  dbo.executeUpdate("delete from  guestbook  where  id = '"+id[i]+"'");  

    dbo.executeUpdate("delete from  replay  where  mid = '"+id[i]+"'");

           }

           return Constant.SUCCESS;

       }catch(Exception e){

           e.printStackTrace();

           return Constant.SYSTEM_ERROR;

       }finally{

           dbo.close();

       }

    }

回复留言

    public int reGuestBook(int mid ,String replay,String replayer){

       String sql = "insert into replay (mid,replay,replayer,replaytime)" +

    " values ('"+mid+"','"+replay+"','"+replayer+"','"+date+"') ";

    String sql2 = "update guestbook set replay='1' where id='"+mid+"' ";

       DBO dbo = new DBO();

       dbo.open();

       try{

           int i = dbo.executeUpdate(sql);

           int j = dbo.executeUpdate(sql2);

           if(i == j && i== 1)

              return Constant.SUCCESS;

           else

              return Constant.SYSTEM_ERROR;

       }catch(Exception e){

           e.printStackTrace();

           return Constant.SYSTEM_ERROR;

       }finally{

           dbo.close();

       }

    }

图4-15 投诉信息管理

4.4.5 产品回访管理

可以对回访信息进行添加修改或删除,界面如下图所示:

图4-16 产品回访管理

四,核心代码展示

package com.action;

/**
 * 
 * 留言本
 */

import java.io.IOException;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import com.bean.GuestBookBean;
import com.bean.SystemBean;
import com.util.Constant;
import com.util.Filter;

public class GuestBookServlet extends HttpServlet {

	/**
	 * Constructor of the object.
	 */
	public GuestBookServlet() {
		super();
	}

	/**
	 * Destruction of the servlet. <br>
	 */
	public void destroy() {
		super.destroy(); // Just puts "destroy" string in log
		// Put your code here
	}

	/**
	 * The doGet method of the servlet. <br>
	 *
	 * This method is called when a form has its tag value method equals to get.
	 * 
	 * @param request the request send by the client to the server
	 * @param response the response send by the server to the client
	 * @throws ServletException if an error occurred
	 * @throws IOException if an error occurred
	 */
	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		
			doPost(request,response);
	}

	/**
	 * The doPost method of the servlet. <br>
	 *
	 * This method is called when a form has its tag value method equals to post.
	 * 
	 * @param request the request send by the client to the server
	 * @param response the response send by the server to the client
	 * @throws ServletException if an error occurred
	 * @throws IOException if an error occurred
	 */
	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
	
		request.setCharacterEncoding(Constant.CHARACTERENCODING);
		response.setContentType(Constant.CONTENTTYPE);
		//nikename, pic, email, qq, weburl, blogurl, expressions, content
		String sysdir = new SystemBean().getDir();
		HttpSession session = request.getSession();
		String method = request.getParameter("method").trim();
			GuestBookBean guestBookBean = new GuestBookBean();
			if(method.equals("add")){//发表留言
				String member=(String)session.getAttribute("member");
				String nikename = Filter.escapeHTMLTags(request.getParameter("nikename").trim());
				String face ="images/nobody.gif";
				String email = Filter.escapeHTMLTags(request.getParameter("email").trim());
				String qq = Filter.escapeHTMLTags(request.getParameter("qq").trim());
				String weburl = Filter.escapeHTMLTags(request.getParameter("weburl").trim());
				String blogurl = Filter.escapeHTMLTags(request.getParameter("blogurl").trim());
				String expressions = "images/face/"+Filter.escapeHTMLTags(request.getParameter("face").trim())+".gif";
				String content = Filter.escapeHTMLTags(request.getParameter("content").trim());
				String ip = request.getRemoteAddr();
				 
				int guestbook=1;
				int flag = guestBookBean.addGuestBook(nikename, face, email, qq, weburl, blogurl, expressions, content, ip,guestbook);
				if(flag == 1){
					
						request.setAttribute("message", "谢谢您的留言,请等候管理员回复!");
						request.getRequestDispatcher("guestbook.jsp").forward(request, response);
					
				}
				else{
					request.setAttribute("message", "系统维护中,请稍后再试!");
					request.getRequestDispatcher("guestbook.jsp").forward(request, response);
				}
			}
			else if(method.equals("delguestbook")){//删除留言
				try{
					String username2 = (String)session.getAttribute("user");
					if(username2 == null){
						request.getRequestDispatcher("error.jsp").forward(request, response);
					}
					else{
						String check[] = request.getParameterValues("checkit");
						if(check == null){
							request.setAttribute("message", "请选择要删除的记录!");
							request.getRequestDispatcher(sysdir+"/guestbook/index.jsp").forward(request, response);
						}
						else{
							int id[]= new int[check.length];
							for(int i = 0;i<check.length;i++){
								int s = Integer.parseInt(check[i]);				
								id[i] = s;
							}
							int flag = guestBookBean.delGuestBook(id);
							if(flag == Constant.SUCCESS){
								request.getRequestDispatcher(sysdir+"/guestbook/index.jsp").forward(request, response);
							}
							else{
								request.setAttribute("message", "系统维护中,请稍后再试!");
								request.getRequestDispatcher(sysdir+"/guestbook/index.jsp").forward(request, response);
							}
						}
					}
				}catch(Exception e){
					request.getRequestDispatcher("error.jsp").forward(request, response);
				}
			}
			
			else if(method.equals("replay")){//回复留言
				try{
					String username2 = (String)session.getAttribute("user");
					if(username2 == null){
						request.getRequestDispatcher("error.jsp").forward(request, response);
					}
					else{
						String messageid = Filter.escapeHTMLTags(request.getParameter("id").trim());
						String replay = Filter.escapeHTMLTags(request.getParameter("replay").trim());
						int flag = guestBookBean.reGuestBook(Integer.parseInt(messageid), replay, username2);
						if(flag == Constant.SUCCESS){
							request.setAttribute("message", "回复成功!");
							request.getRequestDispatcher(sysdir+"/guestbook/index.jsp").forward(request, response);
						}
						else{
							request.setAttribute("message", "系统维护中,请稍后再试!");
							request.getRequestDispatcher(sysdir+"/guestbook/index.jsp").forward(request, response);
						}
					}
				}catch(Exception e){
					request.getRequestDispatcher("error.jsp").forward(request, response);
				}
			}
			else if(method.equals("upreplay")){
				try{
					String username2 = (String)session.getAttribute("user");
					if(username2 == null){
						request.getRequestDispatcher("error.jsp").forward(request, response);
					}
					else{
						String messageid = Filter.escapeHTMLTags(request.getParameter("id").trim());
						String replay = Filter.escapeHTMLTags(request.getParameter("replay").trim());
						int flag = guestBookBean.upReplay(Integer.parseInt(messageid), replay);
						if(flag == Constant.SUCCESS){
							request.setAttribute("message", "修改成功!");
							request.getRequestDispatcher(sysdir+"/guestbook/index.jsp").forward(request, response);
						}
						else{
							request.setAttribute("message", "系统维护中,请稍后再试!");
							request.getRequestDispatcher(sysdir+"/guestbook/index.jsp").forward(request, response);
						}
					}
				}catch(Exception e){
					request.getRequestDispatcher("error.jsp").forward(request, response);
				}
			}
			else{
				request.getRequestDispatcher("error.jsp").forward(request, response);
			}
			
	}
	
	/**
	 * Initialization of the servlet. <br>
	 *
	 * @throws ServletException if an error occure
	 */
	public void init() throws ServletException {
		// Put your code here
	}
}

五,相关作品展示

基于Java开发、Python开发、PHP开发、C#开发等相关语言开发的实战项目

基于Nodejs、Vue等前端技术开发的前端实战项目

基于微信小程序和安卓APP应用开发的相关作品

基于51单片机等嵌入式物联网开发应用

基于各类算法实现的AI智能应用

基于大数据实现的各类数据管理和推荐系统

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

编程千纸鹤

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值