博主介绍:
大家好,我是一名在Java圈混迹十余年的程序员,精通Java编程语言,同时也熟练掌握微信小程序、Python和Android等技术,能够为大家提供全方位的技术支持和交流。
我擅长在JavaWeb、SSH、SSM、SpringBoot等框架下进行项目开发,具有丰富的项目经验和开发技能。我的代码风格规范、优美、易读性强,同时也注重性能优化、代码重构等方面的实践和经验总结。
我有丰富的成品Java毕设项目经验,能够为学生提供各类个性化的开题框架和实际运作方案。同时我也提供相关的学习资料、程序开发、技术解答、代码讲解、文档报告等专业服务。
🍅
技术交流和部署相关看文章末尾!
🍅
👇🏻
精彩专栏
推荐订阅
👇🏻 不然下次找不到哟
企业客户信息反馈平台
源码
下载地址:
https://download.csdn.net/download/weixin_54828627/87798278
一、效果演示
基于springboot+vue企业客户信息反馈平台演示视频
二、前言介绍
网络的广泛应用给生活带来了十分的便利。所以把
企业客户信息反馈管理
与现在网络相结合,利用java技术建设
企业客户信息反馈平台
,实现
企业客户信息反馈
的信息化。
则对于进一步提高
企业客户信息反馈
管理
发展,丰富
企业客户信息反馈
管理经验
能起到不少的促进作用。
企业客户信息反馈平台
能够通过互联网得到广泛的、全面的宣传,让尽可能多的
用户
了解和熟知
企业客户信息反馈平台
的便捷高效
,不仅为
客户
提供了服务,而且也推广了自己,让更多的
客户
了解自己。对于
企业客户信息反馈
而言,若拥有自己的
平台
,通过
平台得到更好的管理
,同时提升了形象。
三、主要技术
技术名 |
作用 |
---|---|
SpringBoot |
后端框架 |
Vue |
前端框架 |
MySQL |
数据库 |
四、系统设计(部分)
4.1、主要功能模块设计
五、功能截图
5.1、平台功能模块
企业客户信息反馈平台,在平台首页可以查看首页,问题信息,技术文档,平台公告,个人中心,后台管理等内容,并进行详细操作;如图5-1所示。
图5-1平台首页界面图
技术文档
图5-2技术文档界面图
问题信息
图5-3问题信息界面图
个人中心
图5-4个人中心界面图
5.2、后台登录
用户登录进入平台前在登录页面根据要求填写用户名和密码,点击登录进行平台操作,如图5-5所示。
图5-5后台登录界面图
5.2.1、管理员功能
管理员登录平台后,可以对首页,个人中心,客户管理,问题类型管理,问题信息管理,问题报表管理,技术文档管理,系统管理等功能进行相应的操作管理,如图5-6所示。
图5-6管理员功能界面图
客户管理
图5-7客户管理界面图
问题信息管理
图5-8问题信息管理界面图
问题报表管理
图5-9问题报表管理界面图
技术文档管理
图5-10技术文档管理界面图
问题类型管理
图5-11问题类型管理界面图
系统管理
图5-12平台管理界面图
5.2.2、客户功能
客户登录平台后,可以对首页,个人中心,问题信息管理,我的收藏管理等功能进行相应的操作管理,如图5-13所示。
图5-13管理员功能界面图
个人中心
图5-14个人中心界面图
我的收藏管理
图5-10我的收藏管理界面图
这里功能太多,就不一一展示啦~
六、数据库设计(部分)
ER图是由实体及其关系构成的图,通过E/R图可以清楚地描述平台涉及到的实体之间的相互关系。在平台中对一些主要的几个关键实体如下图:
(1)客户管理E/R图如下所示:
图6-1客户管理E/R图
(2)问题信息管理E/R图如下所示:
图6-2问题信息管理E/R图
七、代码参考
package com.controller;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Calendar;
import java.util.Map;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Date;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import com.utils.ValidatorUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.annotation.IgnoreAuth;
import com.entity.DiscussjishuwendangEntity;
import com.entity.view.DiscussjishuwendangView;
import com.service.DiscussjishuwendangService;
import com.service.TokenService;
import com.utils.PageUtils;
import com.utils.R;
import com.utils.MD5Util;
import com.utils.MPUtil;
import com.utils.CommonUtil;
import java.io.IOException;
/**
* 技术文档评论表
* 后端接口
* @author
* @email
* @date 2022-05-27 16:31:40
*/
@RestController
@RequestMapping("/discussjishuwendang")
public class DiscussjishuwendangController {
@Autowired
private DiscussjishuwendangService discussjishuwendangService;
/**
* 后端列表
*/
@RequestMapping("/page")
public R page(@RequestParam Map<String, Object> params,DiscussjishuwendangEntity discussjishuwendang,
HttpServletRequest request){
EntityWrapper<DiscussjishuwendangEntity> ew = new EntityWrapper<DiscussjishuwendangEntity>();
PageUtils page = discussjishuwendangService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, discussjishuwendang), params), params));
return R.ok().put("data", page);
}
/**
* 前端列表
*/
@IgnoreAuth
@RequestMapping("/list")
public R list(@RequestParam Map<String, Object> params,DiscussjishuwendangEntity discussjishuwendang,
HttpServletRequest request){
EntityWrapper<DiscussjishuwendangEntity> ew = new EntityWrapper<DiscussjishuwendangEntity>();
PageUtils page = discussjishuwendangService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, discussjishuwendang), params), params));
return R.ok().put("data", page);
}
/**
* 列表
*/
@RequestMapping("/lists")
public R list( DiscussjishuwendangEntity discussjishuwendang){
EntityWrapper<DiscussjishuwendangEntity> ew = new EntityWrapper<DiscussjishuwendangEntity>();
ew.allEq(MPUtil.allEQMapPre( discussjishuwendang, "discussjishuwendang"));
return R.ok().put("data", discussjishuwendangService.selectListView(ew));
}
/**
* 查询
*/
@RequestMapping("/query")
public R query(DiscussjishuwendangEntity discussjishuwendang){
EntityWrapper< DiscussjishuwendangEntity> ew = new EntityWrapper< DiscussjishuwendangEntity>();
ew.allEq(MPUtil.allEQMapPre( discussjishuwendang, "discussjishuwendang"));
DiscussjishuwendangView discussjishuwendangView = discussjishuwendangService.selectView(ew);
return R.ok("查询技术文档评论表成功").put("data", discussjishuwendangView);
}
/**
* 后端详情
*/
@RequestMapping("/info/{id}")
public R info(@PathVariable("id") Long id){
DiscussjishuwendangEntity discussjishuwendang = discussjishuwendangService.selectById(id);
return R.ok().put("data", discussjishuwendang);
}
/**
* 前端详情
*/
@IgnoreAuth
@RequestMapping("/detail/{id}")
public R detail(@PathVariable("id") Long id){
DiscussjishuwendangEntity discussjishuwendang = discussjishuwendangService.selectById(id);
return R.ok().put("data", discussjishuwendang);
}
/**
* 后端保存
*/
@RequestMapping("/save")
public R save(@RequestBody DiscussjishuwendangEntity discussjishuwendang, HttpServletRequest request){
discussjishuwendang.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
//ValidatorUtils.validateEntity(discussjishuwendang);
discussjishuwendangService.insert(discussjishuwendang);
return R.ok();
}
/**
* 前端保存
*/
@RequestMapping("/add")
public R add(@RequestBody DiscussjishuwendangEntity discussjishuwendang, HttpServletRequest request){
discussjishuwendang.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
//ValidatorUtils.validateEntity(discussjishuwendang);
discussjishuwendangService.insert(discussjishuwendang);
return R.ok();
}
/**
* 修改
*/
@RequestMapping("/update")
@Transactional
public R update(@RequestBody DiscussjishuwendangEntity discussjishuwendang, HttpServletRequest request){
//ValidatorUtils.validateEntity(discussjishuwendang);
discussjishuwendangService.updateById(discussjishuwendang);//全部更新
return R.ok();
}
/**
* 删除
*/
@RequestMapping("/delete")
public R delete(@RequestBody Long[] ids){
discussjishuwendangService.deleteBatchIds(Arrays.asList(ids));
return R.ok();
}
/**
* 提醒接口
*/
@RequestMapping("/remind/{columnName}/{type}")
public R remindCount(@PathVariable("columnName") String columnName, HttpServletRequest request,
@PathVariable("type") String type,@RequestParam Map<String, Object> map) {
map.put("column", columnName);
map.put("type", type);
if(type.equals("2")) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Calendar c = Calendar.getInstance();
Date remindStartDate = null;
Date remindEndDate = null;
if(map.get("remindstart")!=null) {
Integer remindStart = Integer.parseInt(map.get("remindstart").toString());
c.setTime(new Date());
c.add(Calendar.DAY_OF_MONTH,remindStart);
remindStartDate = c.getTime();
map.put("remindstart", sdf.format(remindStartDate));
}
if(map.get("remindend")!=null) {
Integer remindEnd = Integer.parseInt(map.get("remindend").toString());
c.setTime(new Date());
c.add(Calendar.DAY_OF_MONTH,remindEnd);
remindEndDate = c.getTime();
map.put("remindend", sdf.format(remindEndDate));
}
}
Wrapper<DiscussjishuwendangEntity> wrapper = new EntityWrapper<DiscussjishuwendangEntity>();
if(map.get("remindstart")!=null) {
wrapper.ge(columnName, map.get("remindstart"));
}
if(map.get("remindend")!=null) {
wrapper.le(columnName, map.get("remindend"));
}
int count = discussjishuwendangService.selectCount(wrapper);
return R.ok().put("count", count);
}
}
八、技术交流
大家
点赞、收藏、关注、评论
啦 、
查看文章结尾👇🏻
获取联系方式
👇🏻
精彩专栏
推荐订阅
:在下方专栏👇🏻
👇🏻👇🏻👇🏻