基于ssm的家居家电维修系统微信小程序源码和论文
1.本课题的研究目的和意义: 随着我国互联网的普及,微信成为了人们日常生活中必不可少的交流工具。据相关数据显示,2018年上半年微信的日均活跃用户已超过10亿。如此庞大的用户量催生了微信小程序的迅猛发展。在日常生活方面,许多的行业都提供了微信小程序让用户更加便捷的使用。 同样的家居家电维修系统小程序也能给用户带来方便。传统的家居家电维修需要用户临时出门找维修师傅,对于赶时间的用户来说十分不方便。而且他不知道维修师傅当前是否有空,能否上门维修。但家居家电维修系统小程序不同,首先它无需用户下载app,无需占用手机的空间内存。其次它可以直接在小程序上线上下单,寻找附近有空的维修师傅上门进行维修。能让用户不出家门就可以寻找到维修师傅,同时它可以提前预约维修师傅上门,能让维修师傅在用户有空的时间才上门进行维修。该小程序能让用户在日常生活中节省时间以及提供便利,对于平时不出家门的用户也能快捷找到维修师傅上门,能帮助到许多有需要帮助的人。 【588】基于ssm的家居家电维修系统微信小程序源码和论文开题报告任务书 |
近年来,微信小程序在大量微信用户的催生下得到迅速的发展。微信小程序从上线开始,就让很多企业蠢蠢欲动。因为,微信小程序的兴起让许多无法承担传统APP开发费用的企业看到了曙光,对于大学生创业来说,小程序的成本相比于APP的开发也十分廉价。作为微信主推的产品,小程序也从未在众人的目光中退场,它的每一个动作都牵动着互联网从业者的心。 移动互联网兴起时带来了一批创业热,相比APP而言,小程序的开发成本很低,这给独立开发者带来了机会。依附于微信国民级的聊天工具,微信小程序的灵活性让它可以基于场景聚合各种服务。手机中App的使用率不超过40%。而小程序“无需下载,即开即用,用完即走”的特质让它可以成为头部App的补充应用,同时代替一部分低频服务的App。其实小程序应用得最多的类型是生活服务类,工具类。大多都是一些基于生活场景的应用,对于一般的生活需求而言,已经可以满足大部分用户的需求。 微信对小程序的重视程度一点不亚于当年的公众号。虽然不主动宣传,功能开放速度像是在挤牙膏。但是根据网络的统计显示,微信官方发布的小程序场景入口已达41个,搜一搜、二维码、公众号、LBS、小程序系统入口等等是小程序流量引导的主要入口场景。公众号关联小程序、文章中插入小程序等功能开放,让小程序的入口场景变得十分丰富。然而,经过一番筛选,其实能够实际应用到生活中的或许只有32个左右。 微信小程序在各个行业的应用,大大节约了手机的使用空间外,使客户粘性再次加大,对于微信的依赖也有所增强。现如今,人们的使用习惯趋向于移动端,而且对于刚性需求的微信小程序可谓是依赖巨深。而对于一些低频的应用而言,用户也更加期待一种更加便捷的方式去取代APP。现在小程序已经在各个行业都实现了快速的发展,并且产生了深刻的影响,作为工具性质,低频实用性为目的开发额的小程序也正越来越深受时下消费者的支持。以低频的旅游行业为例,开发微信小程序不仅仅能够使获客半径扩大,同时能够延伸旅游相关知识、提升用户旅游体验,甚至能够直接利用微信小程序进行用户流量变现。移动互联网的每个节点都会催生新商业模式的诞生,对小程序来说,它成长的时间太短,大部分人还看不到小程序创业的未来。只有先行者才能获得巨大的发展红利。现在布局小程序,就是抢占市场。 再来说我们的家居家电维修小程序的开发有哪些优势?家居家电使用频率高,难免有时候会发生问题。当出现故障的时候,需要能快速找到维修工,来保障日常生活的正常运转。以往消费者出现维修需求时,一般都是寻找一些线下“牛皮癣”小广告或是去实体店找维修工,然而这些方式不管是沟通、还是时间效率都极低。而且这种方式不合适那些平常不喜欢出门的人,在日常生活中,工作回家后难免不想到处走动。还有一些人刚刚搬家对附近地理并不了解,这种情况下让他们寻找维修师傅上门修为家居家电是十分不方便的。 综上论述,开发一款家居家电维修小程序,用户无需出门就能在手机上下单预约维修,而维修工则可以实时收到订单通知,用完即走,不占内存,符合家电维修的这个低频使用场景。家电维修小程序的开发优势有哪些呢? 1、安全服务,性比价高 相比路边上的小广告,维修平台为供需双方做信誉担保,价格透明、服务可追溯。小程序商提供的维修服务不仅在维修效率上有严格规定,在维修人才的选择上也是经过严格筛选,还有口碑评价机制,保障双方的权益。 2、数据整合,提高服务水平 家居家电维修小程序,在用户下单,在完成订单后可以对该订单评价,对维修师傅打分。可以知道哪些维修师傅的服务水平更高。 3、提前预约,无需等待 在家居家电维修小程序里,用户可以提前下单,预约师傅在自己有空的时候上门进行维修,这样能更加的快速便捷有效的帮用户维修。 4、方便快捷,无需占用内存空间 相比传统app,小程序对于用户来说“无需下载,即开即用,用完即走”,达到真正的便捷效率。 【588】基于ssm的家居家电维修系统微信小程序源码和论文开题报告任务书 |
package com.controller;
import java.io.File;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Iterator;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileItemFactory;
import org.apache.commons.fileupload.FileUploadException;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import com.model.Gginfo;
import com.model.Pinglun;
import com.model.Userinfo;
import com.model.Wxuser;
import com.model.Zhaopin;
import com.response.GonggaoListResponse;
import com.response.GonggaoResponse;
import com.response.LoginResponse;
import com.response.Response;
import com.response.UinfoResponse;
import com.response.WxuserListResponse;
import com.response.WxuserResponse;
import com.response.ZhaopinListResponse;
import com.response.ZhaopinResponse;
import com.service.GginfoService;
import com.service.PinglunService;
import com.service.UserinfoService;
import com.service.WxuserService;
import com.service.ZhaopinService;
@Controller
@RequestMapping(value = "/rest")
public class RestApiController {
@Autowired
private UserinfoService userinfoService;
@Autowired
private WxuserService wxuserService;
@Autowired
private ZhaopinService zhaopinService;
@Autowired
private PinglunService pinglunService;
@Autowired
private GginfoService gginfoService;
/**
* 用户注册
*
* @param user
* @return
*/
@RequestMapping(value = "/register", produces = "application/json;charset=UTF-8", method = RequestMethod.POST)
@ResponseBody
public Response register(HttpServletRequest req, Userinfo user) {
Response sres = new Response();
try {
Userinfo uinfo = new Userinfo();
uinfo.setTel(user.getTel());
List<Userinfo> ulist = userinfoService.queryUserinfoList(uinfo,
null);
if (ulist == null || ulist.size() == 0) {
uinfo.setScores(5d);
userinfoService.insertUserinfo(user);
sres.setCode(200);
} else {
sres.setCode(201); // 手机号已存在
}
} catch (Exception e) {
sres.setCode(500);
e.printStackTrace();
}
return sres;
}
/**
* 用户登录
*
* @param user
* @return
*/
@RequestMapping(value = "/ulogin")
@ResponseBody
public LoginResponse ulogin(HttpServletRequest req, Userinfo user) {
LoginResponse sres = new LoginResponse();
try {
int uid = 0;
List<Userinfo> ulist = userinfoService
.queryUserinfoList(user, null);
if (ulist != null && ulist.size() > 0) {
uid = ulist.get(0).getId();
sres.setCode(200);
sres.setOpenid(uid + "");
sres.setName(ulist.get(0).getName());
sres.setTel(ulist.get(0).getTel());
sres.setUtype(ulist.get(0).getUtype());
} else {
sres.setCode(201);
}
} catch (Exception e) {
sres.setCode(500);
e.printStackTrace();
}
return sres;
}
/**
* 用户资料
*
* @param user
* @return
*/
@RequestMapping(value = "/uinfo")
@ResponseBody
public UinfoResponse uinfo(HttpServletRequest req) {
UinfoResponse sres = new UinfoResponse();
int uid = Integer.parseInt(req.getParameter("uid"));
try {
Userinfo uinfo = userinfoService.queryUserinfoById(uid);
sres.setUinfo(uinfo);
sres.setCode(200);
} catch (Exception e) {
sres.setCode(500);
e.printStackTrace();
}
return sres;
}
/**
* 修改个人资料
*
* @param user
* @return
*/
@RequestMapping(value = "/updateuser")
@ResponseBody
public Response updateuser(HttpServletRequest req, Userinfo userinfo) {
Response sres = new Response();
try {
userinfoService.updateUserinfo(userinfo);
sres.setCode(200);
} catch (Exception e) {
sres.setCode(500);
e.printStackTrace();
}
return sres;
}
/**
* 维修工信息列表
* @param req
* @return
*/
@RequestMapping(value = "/tlist")
@ResponseBody
public WxuserListResponse tlist(HttpServletRequest req) {
WxuserListResponse sres = new WxuserListResponse();
try {
String keywords = req.getParameter("keywords");
String orderType = req.getParameter("orderType");
Wxuser teainfo = new Wxuser();
teainfo.setState("通过");
teainfo.setKeywords(keywords);
List<Wxuser> dlist = wxuserService.queryWxuserList(teainfo, null,orderType);
sres.setCode(200);
sres.setDlist(dlist);
} catch (Exception e) {
sres.setCode(500);
e.printStackTrace();
}
return sres;
}
/**
* 维修工信息详情
* @param req
* @return
*/
@RequestMapping(value = "/tinfo")
@ResponseBody
public WxuserResponse tinfo(HttpServletRequest req) {
WxuserResponse sres = new WxuserResponse();
try {
int id = Integer.parseInt(req.getParameter("id"));
Wxuser wxginfo = wxuserService.queryWxuserById(id);
Pinglun pinfo = new Pinglun();
pinfo.setUid(wxginfo.getUid()+"");
pinfo.setOtype(2);
List<Pinglun> plist = pinglunService.queryPinglunList(pinfo);
sres.setPlist(plist);
sres.setCode(200);
sres.setDinfo(wxginfo);
} catch (Exception e) {
sres.setCode(500);
e.printStackTrace();
}
return sres;
}
/**
* 自己查看维修工信息详情
* @param req
* @return
*/
@RequestMapping(value = "/tinfoView")
@ResponseBody
public WxuserResponse tinfoView(HttpServletRequest req) {
WxuserResponse sres = new WxuserResponse();
try {
Wxuser teainfo = null;
int uid = Integer.parseInt(req.getParameter("uid")==null?"0":req.getParameter("uid"));
Wxuser tinfo = new Wxuser();
tinfo.setUid(uid);
List<Wxuser> tlist = wxuserService.queryWxuserList(tinfo, null);
if(tlist!=null && tlist.size()>0){
teainfo = tlist.get(0);
}
sres.setCode(200);
sres.setDinfo(teainfo);
} catch (Exception e) {
sres.setCode(500);
e.printStackTrace();
}
return sres;
}
/**
* 修改维修工信息
* @param req
* @return
*/
@RequestMapping(value = "/updateTinfo")
@ResponseBody
public Response updateTinfo(HttpServletRequest req,Wxuser wxuser) {
Response sres = new Response();
try {
if(wxuser.getId()!=null){
wxuserService.updateWxuser(wxuser);
}else{
wxuser.setState("待审核");
wxuserService.insertWxuser(wxuser);
}
sres.setCode(200);
} catch (Exception e) {
sres.setCode(500);
e.printStackTrace();
}
return sres;
}
/**
* 报修单列表 任务大厅
* @param req
* @return
*/
@RequestMapping(value = "/zplist")
@ResponseBody
public ZhaopinListResponse zplist(HttpServletRequest req) {
ZhaopinListResponse sres = new ZhaopinListResponse();
try {
Zhaopin zinfo = new Zhaopin();
zinfo.setState("待接单");
String keywords = req.getParameter("keywords");
zinfo.setKeywords(keywords);
List<Zhaopin> dlist = zhaopinService.queryZhaopinList(zinfo, null);
sres.setCode(200);
sres.setDlist(dlist);
} catch (Exception e) {
sres.setCode(500);
e.printStackTrace();
}
return sres;
}
/**
* 报修单详情
* @param req
* @return
*/
@RequestMapping(value = "/zpinfo")
@ResponseBody
public ZhaopinResponse zpinfo(HttpServletRequest req) {
ZhaopinResponse sres = new ZhaopinResponse();
try {
int id = Integer.parseInt(req.getParameter("id"));
Zhaopin zinfo = zhaopinService.queryZhaopinById(id);
if(zinfo.getWuid()!=null && zinfo.getWuid()!=0){
Wxuser wxuser = new Wxuser();
wxuser.setUid(zinfo.getWuid());
List<Wxuser> wxlist = wxuserService.queryWxuserList(wxuser, null);
if(wxlist!=null && wxlist.size()>0){
zinfo.setWxuserVO(wxlist.get(0));
}
}
sres.setCode(200);
sres.setDinfo(zinfo);
} catch (Exception e) {
sres.setCode(500);
e.printStackTrace();
}
return sres;
}
/**
* 发布报修单
* @param req
* @return
*/
@RequestMapping(value = "/addZhaopin")
@ResponseBody
public Response addZhaopin(HttpServletRequest req,Zhaopin zhaopin) {
Response sres = new Response();
try {
zhaopin.setState("待接单");
zhaopin.setFbsj(new SimpleDateFormat("yyyy-MM-dd").format(new Date()));
zhaopinService.insertZhaopin(zhaopin);
sres.setCode(200);
} catch (Exception e) {
sres.setCode(500);
e.printStackTrace();
}
return sres;
}
/**
* 修改报修单
* @param req
* @return
*/
@RequestMapping(value = "/updateZhaopin")
@ResponseBody
public Response updateZhaopin(HttpServletRequest req,Zhaopin zhaopin) {
Response sres = new Response();
try {
zhaopin.setFbsj(new SimpleDateFormat("yyyy-MM-dd").format(new Date()));
zhaopinService.updateZhaopin(zhaopin);
sres.setCode(200);
} catch (Exception e) {
sres.setCode(500);
e.printStackTrace();
}
return sres;
}
/**
* 删除报修单
* @param req
* @return
*/
@RequestMapping(value = "/delZhaopin")
@ResponseBody
public Response delZhaopin(HttpServletRequest req) {
Response sres = new Response();
try {
int id = Integer.parseInt(req.getParameter("id"));
zhaopinService.deleteZhaopin(id);
sres.setCode(200);
} catch (Exception e) {
sres.setCode(500);
e.printStackTrace();
}
return sres;
}
/**
* 我发布的报修单
* @param req
* @return
*/
@RequestMapping(value = "/myzplist")
@ResponseBody
public ZhaopinListResponse myzplist(HttpServletRequest req) {
ZhaopinListResponse sres = new ZhaopinListResponse();
try {
int uid = Integer.parseInt(req.getParameter("uid"));
Zhaopin zinfo = new Zhaopin();
zinfo.setUid(uid);
List<Zhaopin> dlist = zhaopinService.queryZhaopinList(zinfo, null);
sres.setCode(200);
sres.setDlist(dlist);
} catch (Exception e) {
sres.setCode(500);
e.printStackTrace();
}
return sres;
}
/**
* 维修工接单
* @param req
* @return
*/
@RequestMapping(value = "/jiedan")
@ResponseBody
public Response jiedan(HttpServletRequest req) {
Response sres = new Response();
try {
int id = Integer.parseInt(req.getParameter("id"));
int uid = Integer.parseInt(req.getParameter("uid"));
Wxuser wxuser = new Wxuser();
wxuser.setUid(uid);
List<Wxuser> wlist = wxuserService.queryWxuserList(wxuser, null);
if(wlist!=null && wlist.size()>0){
wxuser = wlist.get(0);
if(wxuser.getState().equals("通过")){
Zhaopin zinfo = zhaopinService.queryZhaopinById(id);
zinfo.setWuid(uid);
zinfo.setState("已接单");
zhaopinService.updateZhaopin(zinfo);
sres.setCode(200);
}else{
sres.setCode(202);
}
}else{
sres.setCode(201);
}
} catch (Exception e) {
sres.setCode(500);
e.printStackTrace();
}
return sres;
}
/**
* 我接的维修单 维修工
* @param req
* @return
*/
@RequestMapping(value = "/mjdlist")
@ResponseBody
public ZhaopinListResponse mjdlist(HttpServletRequest req) {
ZhaopinListResponse sres = new ZhaopinListResponse();
try {
int uid = Integer.parseInt(req.getParameter("uid"));
Zhaopin zinfo = new Zhaopin();
zinfo.setWuid(uid);
List<Zhaopin> dlist = zhaopinService.queryZhaopinList(zinfo, null);
sres.setCode(200);
sres.setDlist(dlist);
} catch (Exception e) {
sres.setCode(500);
e.printStackTrace();
}
return sres;
}
/**
* 用户确认完成
* @param req
* @return
*/
@RequestMapping(value = "/wancheng")
@ResponseBody
public Response wancheng(HttpServletRequest req) {
Response sres = new Response();
try {
int id = Integer.parseInt(req.getParameter("id"));
Zhaopin zinfo = zhaopinService.queryZhaopinById(id);
zinfo.setState("已完成");
zhaopinService.updateZhaopin(zinfo);
sres.setCode(200);
} catch (Exception e) {
sres.setCode(500);
e.printStackTrace();
}
return sres;
}
// /**
// * 预约详情 用户端
// * @param req
// * @return
// */
// @RequestMapping(value = "/yinfoWxuser")
// @ResponseBody
// public YuyueResponse yinfoWxuser(HttpServletRequest req) {
// YuyueResponse sres = new YuyueResponse();
// try {
// int id = Integer.parseInt(req.getParameter("id"));
// int uid = Integer.parseInt(req.getParameter("uid"));
// Yuyue yinfo = new Yuyue();
// yinfo.setId(id);
// List<Yuyue> dlist = yuyueService.queryYuyueList(yinfo, null);
//
// Pinglun pinglun = new Pinglun();
// pinglun.setOid(id);
// pinglun.setPlrid(uid+"");
// List<Pinglun> plist = pinglunService.queryPinglunList(pinglun);
// if(plist!=null && plist.size()>0 ){
// pinglun = plist.get(0);
// sres.setPinfo(pinglun);
// sres.setSfpj("Y");
// }
// yinfo = dlist.get(0);
// sres.setDinfo(yinfo);
// sres.setCode(200);
//
// } catch (Exception e) {
// sres.setCode(500);
// e.printStackTrace();
// }
// return sres;
// }
//
// /**
// * 预约详情 维修工端
// * @param req
// * @return
// */
// @RequestMapping(value = "/yinfoJiajiao")
// @ResponseBody
// public YuyueResponse yinfoJiajiao(HttpServletRequest req) {
// YuyueResponse sres = new YuyueResponse();
// try {
// int id = Integer.parseInt(req.getParameter("id"));
// int uid = Integer.parseInt(req.getParameter("uid"));
// Yuyue yinfo = new Yuyue();
// yinfo.setId(id);
// List<Yuyue> dlist = yuyueService.queryYuyueList(yinfo, null);
//
// Pinglun pinglun = new Pinglun();
// pinglun.setOid(id);
// pinglun.setPlrid(uid+"");
// List<Pinglun> plist = pinglunService.queryPinglunList(pinglun);
// if(plist!=null && plist.size()>0 ){
// pinglun = plist.get(0);
// sres.setPinfo(pinglun);
// sres.setSfpj("Y");
// }
// yinfo = dlist.get(0);
// sres.setDinfo(yinfo);
// sres.setCode(200);
//
// } catch (Exception e) {
// sres.setCode(500);
// e.printStackTrace();
// }
// return sres;
// }
/**
* 上传文件
* @param user
* @return
*/
@RequestMapping(value = "/uploadFile")
@ResponseBody
public String uploadFile(HttpServletRequest req,HttpServletResponse res,Userinfo user){
String url = "";
try
{
FileItemFactory factory = new DiskFileItemFactory();
// 创建文件上传处理器
ServletFileUpload upload = new ServletFileUpload(factory);
// 开始解析请求信息
List items = null;
try {
items = upload.parseRequest(req);
} catch (FileUploadException e) {
e.printStackTrace();
}
// 对所有请求信息进行判断
Iterator iter = items.iterator();
while (iter.hasNext()) {
FileItem item = (FileItem) iter.next();
// 信息为普通的格式
if (item.isFormField()) {
String fieldName = item.getFieldName();
String value = item.getString();
}
// 信息为文件格式
else {
String fileName = item.getName();
int index = fileName.lastIndexOf(".");
fileName = fileName.substring(index);
String fname = new SimpleDateFormat("yyyyMMddHHmmss").format(new Date())+fileName;
String basePath = req.getServletContext().getRealPath("/upload");
String furl = "/upload/" + fname;
File file = new File(basePath, fname);
try {
item.write(file);
url = furl;
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
catch(Exception e)
{
e.printStackTrace();
}
return url;
}
/**
* 评论
* @param user
* @return
*/
@RequestMapping(value="/pinglun")
@ResponseBody
public Response pinglun(HttpServletRequest req,Pinglun pinglun){
Response sres = new Response();
try
{
String uid = pinglun.getPlrid();
Userinfo uinfo = userinfoService.queryUserinfoById(Integer.parseInt(uid));
pinglun.setPlr(uinfo.getName());
pinglun.setPlsj(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
pinglunService.insertPinglun(pinglun);
Pinglun pinfo = new Pinglun();
pinfo.setUid(pinglun.getUid());
List<Pinglun> plist = pinglunService.queryPinglunList(pinfo);
double totalfen = 0;
if(plist!=null && plist.size()>0){
for (Pinglun pinglun1 : plist) {
totalfen = totalfen+ pinglun1.getFs();
}
totalfen = totalfen/plist.size();
}
int id = Integer.parseInt(pinglun.getUid());
Zhaopin zpinfo = zhaopinService.queryZhaopinById(pinglun.getOid());
zpinfo.setState("已评价");
zhaopinService.updateZhaopin(zpinfo);
uinfo = new Userinfo();
uinfo = userinfoService.queryUserinfoById(id);
uinfo.setScores(totalfen);
userinfoService.updateUserinfo(uinfo);
sres.setCode(200);
}
catch(Exception e)
{
sres.setCode(500);
e.printStackTrace();
}
return sres;
}
/**
* 公告
* @param response
* @param request
* @return
* @throws Exception
*/
@RequestMapping(value="/glist")
@ResponseBody
public GonggaoListResponse glist(HttpServletResponse response, HttpServletRequest request) throws Exception{
GonggaoListResponse res = new GonggaoListResponse();
Gginfo gonggao = new Gginfo();
List<Gginfo> dlist = gginfoService.queryGginfoList(gonggao, null);
res.setDlist(dlist);
return res;
}
/**
* 公告
* @param response
* @param request
* @return
* @throws Exception
*/
@RequestMapping(value="/ginfo")
@ResponseBody
public GonggaoResponse ginfo(HttpServletResponse response, HttpServletRequest request) throws Exception{
GonggaoResponse res = new GonggaoResponse();
int id = Integer.parseInt(request.getParameter("id"));
Gginfo gonggao = gginfoService.queryGginfoById(id);
res.setDinfo(gonggao);
return res;
}
}