基于springboot智慧外贸平台源码和论文
互联网的广泛应用极大地方便了人们的生活。因此,在智慧外贸管理方面,在结合互联网的基础上,借助Java技术搭建智慧外贸平台,则能有效推动智慧外贸管理工作的信息化发展,并为积累丰富的智慧外贸管理经验教训提供有力支撑作用。
智慧外贸平台通过互联网实现了全方位、彻底的宣传,在尽可能广泛的范围内让用户认知智慧外贸平台的优势与便捷高效性。无论是为群众提供服务还是推广自身形象,在更多的人身上看到了提升效果的可能性。对于智慧外贸而言,在拥有独立系统的基础上实现更好管理的同时也提升了品牌形象。
本系统的开发现状与未来趋势研究主要涵盖了需求分析、系统架构及数据库设计等方面展开研究,并完成系统的开发与实现工作。本文围绕系统开发过程展开论述,在系统设计阶段就明确了功能模块划分及数据管理策略,并通过分阶段实施确保了项目的顺利推进。基于当前实际状况制定科学合理的开发方案后,在项目实施中充分运用Java编程语言及MySQL数据库技术实现系统的功能模块并进行联调测试。随后开展功能测试与安全验证工作,在此过程中进一步优化和完善系统的安全性与用户体验。
关键字: 智慧外贸 java MySQL数据库

基于springboot智慧外贸平台源码和论文376
演示视频:
基于springboot智慧外贸平台源码和论文
Abstract
The extensive deployment of networks has significantly enhanced daily life. Furthermore, integrating intelligent foreign trade management systems with existing networks is essential for building an effective platform. Additionally, accumulating rich experiences in intelligentforeigntradelmanage ment can offer substantial support for advancing this field.
可以通过互联网进行广泛而全面的宣传和推广,并确保最大限度地使广大用户了解和熟悉智能外贸平台带来的便利性和高效性;同时不仅能够为大众提供服务还能自我展示;从而让更多人认识自己
当前系统设计的状态与发展趋势可以从需求、结构、数据库等设计方面到系统的实现分别负责管理员、买家和企业的实现。论文内容展示了从系统设计描述实施分析与测试这几个方面的发展过程。该系统根据实际情况选择一个可行的发展计划借助Java编程语言与MySQL数据库实现了系统的所有功能随后进入测试阶段测试系统是否存在漏洞并验证用户的权限以提高系统的安全性最终产品符合行业标准。
Keywords: wisdom foreign trade Java MySQL database
表4-1:关单信息
| 字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
|---|---|---|---|---|---|
| id | bigint | 主键 | 主键 | ||
| addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
| guandanbianhao | varchar | 200 | 关单编号 | ||
| shangjiazhanghao | varchar | 200 | 商家账号 | ||
| shangjiaxingming | varchar | 200 | 商家姓名 | ||
| shangpinmingcheng | varchar | 200 | 商品名称 | ||
| shangpinfenlei | varchar | 200 | 商品分类 | ||
| guandanshijian | date | 关单时间 | |||
| guandanbeizhu | longtext | 4294967295 | 关单备注 | ||
| maijiazhanghao | varchar | 200 | 买家账号 | ||
| maijiaxingming | varchar | 200 | 买家姓名 |
表4-2:商品信息评论表
| 字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
|---|---|---|---|---|---|
| id | bigint | 主键 | 主键 | ||
| addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
| refid | bigint | 关联表id | |||
| userid | bigint | 用户id | |||
| nickname | varchar | 200 | 用户名 | ||
| content | longtext | 4294967295 | 评论内容 | ||
| reply | longtext | 4294967295 | 回复内容 |
表4-3:token表
| 字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
|---|---|---|---|---|---|
| id | bigint | 主键 | 主键 | ||
| userid | bigint | 用户id | |||
| username | varchar | 100 | 用户名 | ||
| tablename | varchar | 100 | 表名 | ||
| role | varchar | 100 | 角色 | ||
| token | varchar | 200 | 密码 | ||
| addtime | timestamp | 新增时间 | CURRENT_TIMESTAMP | ||
| expiratedtime | timestamp | 过期时间 | CURRENT_TIMESTAMP |
表4-4:运单信息
| 字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
|---|---|---|---|---|---|
| id | bigint | 主键 | 主键 | ||
| addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
| yundanhao | varchar | 200 | 运单号 | ||
| shangjiazhanghao | varchar | 200 | 商家账号 | ||
| shangjiaxingming | varchar | 200 | 商家姓名 | ||
| shangpinmingcheng | varchar | 200 | 商品名称 | ||
| shangpinfenlei | varchar | 200 | 商品分类 | ||
| dengjishijian | datetime | 登记时间 | |||
| yundanneirong | longtext | 4294967295 | 运单内容 | ||
| maijiazhanghao | varchar | 200 | 买家账号 | ||
| maijiaxingming | varchar | 200 | 买家姓名 |
表4-5:订单信息
| 字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
|---|---|---|---|---|---|
| id | bigint | 主键 | 主键 | ||
| addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
| dingdanbianhao | varchar | 200 | 订单编号 | ||
| shangjiazhanghao | varchar | 200 | 商家账号 | ||
| shangjiaxingming | varchar | 200 | 商家姓名 | ||
| shangpinmingcheng | varchar | 200 | 商品名称 | ||
| shangpinfenlei | varchar | 200 | 商品分类 | ||
| gengxinshijian | datetime | 更新时间 | |||
| dingdanxiangqing | longtext | 4294967295 | 订单详情 | ||
| maijiazhanghao | varchar | 200 | 买家账号 | ||
| maijiaxingming | varchar | 200 | 买家姓名 |
表4-6:收藏表
| 字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
|---|---|---|---|---|---|
| id | bigint | 主键 | 主键 | ||
| addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
| userid | bigint | 用户id | |||
| refid | bigint | 收藏id | |||
| tablename | varchar | 200 | 表名 | ||
| name | varchar | 200 | 收藏名称 | ||
| picture | varchar | 200 | 收藏图片 | ||
| type | varchar | 200 | 类型(1:收藏,21:赞,22:踩) | 1 | |
| inteltype | varchar | 200 | 推荐类型 |























package com.controller;
import java.io.File;
import java.math.BigDecimal;
import java.net.URL;
import java.text.SimpleDateFormat;
import com.alibaba.fastjson.JSONObject;
import java.util.*;
import org.springframework.beans.BeanUtils;
import javax.servlet.http.HttpServletRequest;
import org.springframework.web.context.ContextLoader;
import javax.servlet.ServletContext;
import com.service.TokenService;
import com.utils.*;
import java.lang.reflect.InvocationTargetException;
import com.service.DictionaryService;
import org.apache.commons.lang3.StringUtils;
import com.annotation.IgnoreAuth;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.entity.*;
import com.entity.view.*;
import com.service.*;
import com.utils.PageUtils;
import com.utils.R;
import com.alibaba.fastjson.*;
/** * 业务人员
* 后端接口
* @author
* @email
*/
@RestController
@Controller
@RequestMapping("/yewurenyuan")
public class YewurenyuanController {
private static final Logger logger = LoggerFactory.getLogger(YewurenyuanController.class);
private static final String TABLE_NAME = "yewurenyuan";
@Autowired
private YewurenyuanService yewurenyuanService;
@Autowired
private TokenService tokenService;
@Autowired
private BaoxiuService baoxiuService;//报修
@Autowired
private BaoxiuCommentbackService baoxiuCommentbackService;//报修评价
@Autowired
private BaoxiuFenpeiService baoxiuFenpeiService;//报修分配
@Autowired
private DictionaryService dictionaryService;//字典
@Autowired
private FeiyongService feiyongService;//宽带缴费
@Autowired
private ForumService forumService;//论坛
@Autowired
private GonggaoService gonggaoService;//公告
@Autowired
private KuandaiService kuandaiService;//宽带
@Autowired
private KuandaiCollectionService kuandaiCollectionService;//宽带收藏
@Autowired
private KuandaiLiuyanService kuandaiLiuyanService;//宽带留言
@Autowired
private KuandaiOrderService kuandaiOrderService;//宽带开户
@Autowired
private KuandaiYuyueService kuandaiYuyueService;//宽带预约安装
@Autowired
private QianyiYuyueService qianyiYuyueService;//迁移申请
@Autowired
private YonghuService yonghuService;//用户
@Autowired
private UsersService usersService;//管理员
/** * 后端列表
*/
@RequestMapping("/page")
public R page(@RequestParam Map<String, Object> params, HttpServletRequest request){
logger.debug("page方法:,,Controller:{},,params:{}",this.getClass().getName(),JSONObject.toJSONString(params));
String role = String.valueOf(request.getSession().getAttribute("role"));
if(false)
return R.error(511,"永不会进入");
else if("用户".equals(role))
params.put("yonghuId",request.getSession().getAttribute("userId"));
else if("业务人员".equals(role))
params.put("yewurenyuanId",request.getSession().getAttribute("userId"));
CommonUtil.checkMap(params);
PageUtils page = yewurenyuanService.queryPage(params);
//字典表数据转换
List<YewurenyuanView> list =(List<YewurenyuanView>)page.getList();
for(YewurenyuanView c:list){
//修改对应字典表字段
dictionaryService.dictionaryConvert(c, request);
}
return R.ok().put("data", page);
}
/** * 后端详情
*/
@RequestMapping("/info/{id}")
public R info(@PathVariable("id") Long id, HttpServletRequest request){
logger.debug("info方法:,,Controller:{},,id:{}",this.getClass().getName(),id);
YewurenyuanEntity yewurenyuan = yewurenyuanService.selectById(id);
if(yewurenyuan !=null){
//entity转view
YewurenyuanView view = new YewurenyuanView();
BeanUtils.copyProperties( yewurenyuan , view );//把实体数据重构到view中
//修改对应字典表字段
dictionaryService.dictionaryConvert(view, request);
return R.ok().put("data", view);
}else {
return R.error(511,"查不到数据");
}
}
/** * 后端保存
*/
@RequestMapping("/save")
public R save(@RequestBody YewurenyuanEntity yewurenyuan, HttpServletRequest request){
logger.debug("save方法:,,Controller:{},,yewurenyuan:{}",this.getClass().getName(),yewurenyuan.toString());
String role = String.valueOf(request.getSession().getAttribute("role"));
if(false)
return R.error(511,"永远不会进入");
Wrapper<YewurenyuanEntity> queryWrapper = new EntityWrapper<YewurenyuanEntity>()
.eq("username", yewurenyuan.getUsername())
.or()
.eq("yewurenyuan_phone", yewurenyuan.getYewurenyuanPhone())
.or()
.eq("yewurenyuan_id_number", yewurenyuan.getYewurenyuanIdNumber())
;
logger.info("sql语句:"+queryWrapper.getSqlSegment());
YewurenyuanEntity yewurenyuanEntity = yewurenyuanService.selectOne(queryWrapper);
if(yewurenyuanEntity==null){
yewurenyuan.setCreateTime(new Date());
yewurenyuan.setPassword("123456");
yewurenyuanService.insert(yewurenyuan);
return R.ok();
}else {
return R.error(511,"账户或者业务人员手机号或者业务人员身份证号已经被使用");
}
}
/** * 后端修改
*/
@RequestMapping("/update")
public R update(@RequestBody YewurenyuanEntity yewurenyuan, HttpServletRequest request) throws NoSuchFieldException, ClassNotFoundException, IllegalAccessException, InstantiationException {
logger.debug("update方法:,,Controller:{},,yewurenyuan:{}",this.getClass().getName(),yewurenyuan.toString());
YewurenyuanEntity oldYewurenyuanEntity = yewurenyuanService.selectById(yewurenyuan.getId());//查询原先数据
String role = String.valueOf(request.getSession().getAttribute("role"));
// if(false)
// return R.error(511,"永远不会进入");
if("".equals(yewurenyuan.getYewurenyuanPhoto()) || "null".equals(yewurenyuan.getYewurenyuanPhoto())){
yewurenyuan.setYewurenyuanPhoto(null);
}
yewurenyuanService.updateById(yewurenyuan);//根据id更新
return R.ok();
}
/** * 删除
*/
@RequestMapping("/delete")
public R delete(@RequestBody Integer[] ids, HttpServletRequest request){
logger.debug("delete:,,Controller:{},,ids:{}",this.getClass().getName(),ids.toString());
List<YewurenyuanEntity> oldYewurenyuanList =yewurenyuanService.selectBatchIds(Arrays.asList(ids));//要删除的数据
yewurenyuanService.deleteBatchIds(Arrays.asList(ids));
return R.ok();
}
/** * 批量上传
*/
@RequestMapping("/batchInsert")
public R save( String fileName, HttpServletRequest request){
logger.debug("batchInsert方法:,,Controller:{},,fileName:{}",this.getClass().getName(),fileName);
Integer yonghuId = Integer.valueOf(String.valueOf(request.getSession().getAttribute("userId")));
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
try {
List<YewurenyuanEntity> yewurenyuanList = new ArrayList<>();//上传的东西
Map<String, List<String>> seachFields= new HashMap<>();//要查询的字段
Date date = new Date();
int lastIndexOf = fileName.lastIndexOf(".");
if(lastIndexOf == -1){
return R.error(511,"该文件没有后缀");
}else{
String suffix = fileName.substring(lastIndexOf);
if(!".xls".equals(suffix)){
return R.error(511,"只支持后缀为xls的excel文件");
}else{
URL resource = this.getClass().getClassLoader().getResource("static/upload/" + fileName);//获取文件路径
File file = new File(resource.getFile());
if(!file.exists()){
return R.error(511,"找不到上传文件,请联系管理员");
}else{
List<List<String>> dataList = PoiUtil.poiImport(file.getPath());//读取xls文件
dataList.remove(0);//删除第一行,因为第一行是提示
for(List<String> data:dataList){
//循环
YewurenyuanEntity yewurenyuanEntity = new YewurenyuanEntity();
// yewurenyuanEntity.setUsername(data.get(0)); //账户 要改的
// //yewurenyuanEntity.setPassword("123456");//密码
// yewurenyuanEntity.setYewurenyuanName(data.get(0)); //业务人员姓名 要改的
// yewurenyuanEntity.setYewurenyuanPhone(data.get(0)); //业务人员手机号 要改的
// yewurenyuanEntity.setYewurenyuanIdNumber(data.get(0)); //业务人员身份证号 要改的
// yewurenyuanEntity.setYewurenyuanPhoto("");//详情和图片
// yewurenyuanEntity.setSexTypes(Integer.valueOf(data.get(0))); //性别 要改的
// yewurenyuanEntity.setNewMoney(data.get(0)); //余额 要改的
// yewurenyuanEntity.setYewurenyuanEmail(data.get(0)); //业务人员邮箱 要改的
// yewurenyuanEntity.setCreateTime(date);//时间
yewurenyuanList.add(yewurenyuanEntity);
//把要查询是否重复的字段放入map中
//账户
if(seachFields.containsKey("username")){
List<String> username = seachFields.get("username");
username.add(data.get(0));//要改的
}else{
List<String> username = new ArrayList<>();
username.add(data.get(0));//要改的
seachFields.put("username",username);
}
//业务人员手机号
if(seachFields.containsKey("yewurenyuanPhone")){
List<String> yewurenyuanPhone = seachFields.get("yewurenyuanPhone");
yewurenyuanPhone.add(data.get(0));//要改的
}else{
List<String> yewurenyuanPhone = new ArrayList<>();
yewurenyuanPhone.add(data.get(0));//要改的
seachFields.put("yewurenyuanPhone",yewurenyuanPhone);
}
//业务人员身份证号
if(seachFields.containsKey("yewurenyuanIdNumber")){
List<String> yewurenyuanIdNumber = seachFields.get("yewurenyuanIdNumber");
yewurenyuanIdNumber.add(data.get(0));//要改的
}else{
List<String> yewurenyuanIdNumber = new ArrayList<>();
yewurenyuanIdNumber.add(data.get(0));//要改的
seachFields.put("yewurenyuanIdNumber",yewurenyuanIdNumber);
}
}
//查询是否重复
//账户
List<YewurenyuanEntity> yewurenyuanEntities_username = yewurenyuanService.selectList(new EntityWrapper<YewurenyuanEntity>().in("username", seachFields.get("username")));
if(yewurenyuanEntities_username.size() >0 ){
ArrayList<String> repeatFields = new ArrayList<>();
for(YewurenyuanEntity s:yewurenyuanEntities_username){
repeatFields.add(s.getUsername());
}
return R.error(511,"数据库的该表中的 [账户] 字段已经存在 存在数据为:"+repeatFields.toString());
}
//业务人员手机号
List<YewurenyuanEntity> yewurenyuanEntities_yewurenyuanPhone = yewurenyuanService.selectList(new EntityWrapper<YewurenyuanEntity>().in("yewurenyuan_phone", seachFields.get("yewurenyuanPhone")));
if(yewurenyuanEntities_yewurenyuanPhone.size() >0 ){
ArrayList<String> repeatFields = new ArrayList<>();
for(YewurenyuanEntity s:yewurenyuanEntities_yewurenyuanPhone){
repeatFields.add(s.getYewurenyuanPhone());
}
return R.error(511,"数据库的该表中的 [业务人员手机号] 字段已经存在 存在数据为:"+repeatFields.toString());
}
//业务人员身份证号
List<YewurenyuanEntity> yewurenyuanEntities_yewurenyuanIdNumber = yewurenyuanService.selectList(new EntityWrapper<YewurenyuanEntity>().in("yewurenyuan_id_number", seachFields.get("yewurenyuanIdNumber")));
if(yewurenyuanEntities_yewurenyuanIdNumber.size() >0 ){
ArrayList<String> repeatFields = new ArrayList<>();
for(YewurenyuanEntity s:yewurenyuanEntities_yewurenyuanIdNumber){
repeatFields.add(s.getYewurenyuanIdNumber());
}
return R.error(511,"数据库的该表中的 [业务人员身份证号] 字段已经存在 存在数据为:"+repeatFields.toString());
}
yewurenyuanService.insertBatch(yewurenyuanList);
return R.ok();
}
}
}
}catch (Exception e){
e.printStackTrace();
return R.error(511,"批量插入数据异常,请联系管理员");
}
}
/** * 登录
*/
@IgnoreAuth
@RequestMapping(value = "/login")
public R login(String username, String password, String captcha, HttpServletRequest request) {
YewurenyuanEntity yewurenyuan = yewurenyuanService.selectOne(new EntityWrapper<YewurenyuanEntity>().eq("username", username));
if(yewurenyuan==null || !yewurenyuan.getPassword().equals(password))
return R.error("账号或密码不正确");
String token = tokenService.generateToken(yewurenyuan.getId(),username, "yewurenyuan", "业务人员");
R r = R.ok();
r.put("token", token);
r.put("role","业务人员");
r.put("username",yewurenyuan.getYewurenyuanName());
r.put("tableName","yewurenyuan");
r.put("userId",yewurenyuan.getId());
return r;
}
/** * 注册
*/
@IgnoreAuth
@PostMapping(value = "/register")
public R register(@RequestBody YewurenyuanEntity yewurenyuan, HttpServletRequest request) {
// ValidatorUtils.validateEntity(user);
Wrapper<YewurenyuanEntity> queryWrapper = new EntityWrapper<YewurenyuanEntity>()
.eq("username", yewurenyuan.getUsername())
.or()
.eq("yewurenyuan_phone", yewurenyuan.getYewurenyuanPhone())
.or()
.eq("yewurenyuan_id_number", yewurenyuan.getYewurenyuanIdNumber())
;
YewurenyuanEntity yewurenyuanEntity = yewurenyuanService.selectOne(queryWrapper);
if(yewurenyuanEntity != null)
return R.error("账户或者业务人员手机号或者业务人员身份证号已经被使用");
yewurenyuan.setNewMoney(0.0);
yewurenyuan.setCreateTime(new Date());
yewurenyuanService.insert(yewurenyuan);
return R.ok();
}
/** * 重置密码
*/
@GetMapping(value = "/resetPassword")
public R resetPassword(Integer id, HttpServletRequest request) {
YewurenyuanEntity yewurenyuan = yewurenyuanService.selectById(id);
yewurenyuan.setPassword("123456");
yewurenyuanService.updateById(yewurenyuan);
return R.ok();
}
/** * 修改密码
*/
@GetMapping(value = "/updatePassword")
public R updatePassword(String oldPassword, String newPassword, HttpServletRequest request) {
YewurenyuanEntity yewurenyuan = yewurenyuanService.selectById((Integer)request.getSession().getAttribute("userId"));
if(newPassword == null){
return R.error("新密码不能为空") ;
}
if(!oldPassword.equals(yewurenyuan.getPassword())){
return R.error("原密码输入错误");
}
if(newPassword.equals(yewurenyuan.getPassword())){
return R.error("新密码不能和原密码一致") ;
}
yewurenyuan.setPassword(newPassword);
yewurenyuanService.updateById(yewurenyuan);
return R.ok();
}
/** * 忘记密码
*/
@IgnoreAuth
@RequestMapping(value = "/resetPass")
public R resetPass(String username, HttpServletRequest request) {
YewurenyuanEntity yewurenyuan = yewurenyuanService.selectOne(new EntityWrapper<YewurenyuanEntity>().eq("username", username));
if(yewurenyuan!=null){
yewurenyuan.setPassword("123456");
yewurenyuanService.updateById(yewurenyuan);
return R.ok();
}else{
return R.error("账号不存在");
}
}
/** * 获取用户的session用户信息
*/
@RequestMapping("/session")
public R getCurrYewurenyuan(HttpServletRequest request){
Integer id = (Integer)request.getSession().getAttribute("userId");
YewurenyuanEntity yewurenyuan = yewurenyuanService.selectById(id);
if(yewurenyuan !=null){
//entity转view
YewurenyuanView view = new YewurenyuanView();
BeanUtils.copyProperties( yewurenyuan , view );//把实体数据重构到view中
//修改对应字典表字段
dictionaryService.dictionaryConvert(view, request);
return R.ok().put("data", view);
}else {
return R.error(511,"查不到数据");
}
}
/** * 退出
*/
@GetMapping(value = "logout")
public R logout(HttpServletRequest request) {
request.getSession().invalidate();
return R.ok("退出成功");
}
/** * 前端列表
*/
@IgnoreAuth
@RequestMapping("/list")
public R list(@RequestParam Map<String, Object> params, HttpServletRequest request){
logger.debug("list方法:,,Controller:{},,params:{}",this.getClass().getName(),JSONObject.toJSONString(params));
CommonUtil.checkMap(params);
PageUtils page = yewurenyuanService.queryPage(params);
//字典表数据转换
List<YewurenyuanView> list =(List<YewurenyuanView>)page.getList();
for(YewurenyuanView c:list)
dictionaryService.dictionaryConvert(c, request); //修改对应字典表字段
return R.ok().put("data", page);
}
/** * 前端详情
*/
@RequestMapping("/detail/{id}")
public R detail(@PathVariable("id") Long id, HttpServletRequest request){
logger.debug("detail方法:,,Controller:{},,id:{}",this.getClass().getName(),id);
YewurenyuanEntity yewurenyuan = yewurenyuanService.selectById(id);
if(yewurenyuan !=null){
//entity转view
YewurenyuanView view = new YewurenyuanView();
BeanUtils.copyProperties( yewurenyuan , view );//把实体数据重构到view中
//修改对应字典表字段
dictionaryService.dictionaryConvert(view, request);
return R.ok().put("data", view);
}else {
return R.error(511,"查不到数据");
}
}
/** * 前端保存
*/
@RequestMapping("/add")
public R add(@RequestBody YewurenyuanEntity yewurenyuan, HttpServletRequest request){
logger.debug("add方法:,,Controller:{},,yewurenyuan:{}",this.getClass().getName(),yewurenyuan.toString());
Wrapper<YewurenyuanEntity> queryWrapper = new EntityWrapper<YewurenyuanEntity>()
.eq("username", yewurenyuan.getUsername())
.or()
.eq("yewurenyuan_phone", yewurenyuan.getYewurenyuanPhone())
.or()
.eq("yewurenyuan_id_number", yewurenyuan.getYewurenyuanIdNumber())
// .notIn("yewurenyuan_types", new Integer[]{102})
;
logger.info("sql语句:"+queryWrapper.getSqlSegment());
YewurenyuanEntity yewurenyuanEntity = yewurenyuanService.selectOne(queryWrapper);
if(yewurenyuanEntity==null){
yewurenyuan.setCreateTime(new Date());
yewurenyuan.setPassword("123456");
yewurenyuanService.insert(yewurenyuan);
return R.ok();
}else {
return R.error(511,"账户或者业务人员手机号或者业务人员身份证号已经被使用");
}
}
}
AI写代码
package com.controller;
import java.io.File;
import java.math.BigDecimal;
import java.net.URL;
import java.text.SimpleDateFormat;
import com.alibaba.fastjson.JSONObject;
import java.util.*;
import org.springframework.beans.BeanUtils;
import javax.servlet.http.HttpServletRequest;
import org.springframework.web.context.ContextLoader;
import javax.servlet.ServletContext;
import com.service.TokenService;
import com.utils.*;
import java.lang.reflect.InvocationTargetException;
import com.service.DictionaryService;
import org.apache.commons.lang3.StringUtils;
import com.annotation.IgnoreAuth;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.entity.*;
import com.entity.view.*;
import com.service.*;
import com.utils.PageUtils;
import com.utils.R;
import com.alibaba.fastjson.*;
/** * 用户
* 后端接口
* @author
* @email
*/
@RestController
@Controller
@RequestMapping("/yonghu")
public class YonghuController {
private static final Logger logger = LoggerFactory.getLogger(YonghuController.class);
private static final String TABLE_NAME = "yonghu";
@Autowired
private YonghuService yonghuService;
@Autowired
private TokenService tokenService;
@Autowired
private DictionaryService dictionaryService;//字典
@Autowired
private ForumService forumService;//交流论坛
@Autowired
private GonggaoService gonggaoService;//公告资讯
@Autowired
private HanfuService hanfuService;//汉服信息
@Autowired
private HanfuCollectionService hanfuCollectionService;//汉服收藏
@Autowired
private HanfuCommentbackService hanfuCommentbackService;//汉服评价
@Autowired
private HanfuOrderService hanfuOrderService;//汉服租赁
@Autowired
private UsersService usersService;//管理员
/** * 后端列表
*/
@RequestMapping("/page")
public R page(@RequestParam Map<String, Object> params, HttpServletRequest request){
logger.debug("page方法:,,Controller:{},,params:{}",this.getClass().getName(),JSONObject.toJSONString(params));
String role = String.valueOf(request.getSession().getAttribute("role"));
if(false)
return R.error(511,"永不会进入");
else if("用户".equals(role))
params.put("yonghuId",request.getSession().getAttribute("userId"));
CommonUtil.checkMap(params);
PageUtils page = yonghuService.queryPage(params);
//字典表数据转换
List<YonghuView> list =(List<YonghuView>)page.getList();
for(YonghuView c:list){
//修改对应字典表字段
dictionaryService.dictionaryConvert(c, request);
}
return R.ok().put("data", page);
}
/** * 后端详情
*/
@RequestMapping("/info/{id}")
public R info(@PathVariable("id") Long id, HttpServletRequest request){
logger.debug("info方法:,,Controller:{},,id:{}",this.getClass().getName(),id);
YonghuEntity yonghu = yonghuService.selectById(id);
if(yonghu !=null){
//entity转view
YonghuView view = new YonghuView();
BeanUtils.copyProperties( yonghu , view );//把实体数据重构到view中
//修改对应字典表字段
dictionaryService.dictionaryConvert(view, request);
return R.ok().put("data", view);
}else {
return R.error(511,"查不到数据");
}
}
/** * 后端保存
*/
@RequestMapping("/save")
public R save(@RequestBody YonghuEntity yonghu, HttpServletRequest request){
logger.debug("save方法:,,Controller:{},,yonghu:{}",this.getClass().getName(),yonghu.toString());
String role = String.valueOf(request.getSession().getAttribute("role"));
if(false)
return R.error(511,"永远不会进入");
Wrapper<YonghuEntity> queryWrapper = new EntityWrapper<YonghuEntity>()
.eq("username", yonghu.getUsername())
.or()
.eq("yonghu_phone", yonghu.getYonghuPhone())
.or()
.eq("yonghu_id_number", yonghu.getYonghuIdNumber())
;
logger.info("sql语句:"+queryWrapper.getSqlSegment());
YonghuEntity yonghuEntity = yonghuService.selectOne(queryWrapper);
if(yonghuEntity==null){
yonghu.setCreateTime(new Date());
yonghu.setPassword("123456");
yonghuService.insert(yonghu);
return R.ok();
}else {
return R.error(511,"账户或者用户手机号或者用户身份证号已经被使用");
}
}
/** * 后端修改
*/
@RequestMapping("/update")
public R update(@RequestBody YonghuEntity yonghu, HttpServletRequest request) throws NoSuchFieldException, ClassNotFoundException, IllegalAccessException, InstantiationException {
logger.debug("update方法:,,Controller:{},,yonghu:{}",this.getClass().getName(),yonghu.toString());
YonghuEntity oldYonghuEntity = yonghuService.selectById(yonghu.getId());//查询原先数据
String role = String.valueOf(request.getSession().getAttribute("role"));
// if(false)
// return R.error(511,"永远不会进入");
if("".equals(yonghu.getYonghuPhoto()) || "null".equals(yonghu.getYonghuPhoto())){
yonghu.setYonghuPhoto(null);
}
yonghuService.updateById(yonghu);//根据id更新
return R.ok();
}
/** * 删除
*/
@RequestMapping("/delete")
public R delete(@RequestBody Integer[] ids, HttpServletRequest request){
logger.debug("delete:,,Controller:{},,ids:{}",this.getClass().getName(),ids.toString());
List<YonghuEntity> oldYonghuList =yonghuService.selectBatchIds(Arrays.asList(ids));//要删除的数据
yonghuService.deleteBatchIds(Arrays.asList(ids));
return R.ok();
}
/** * 批量上传
*/
@RequestMapping("/batchInsert")
public R save( String fileName, HttpServletRequest request){
logger.debug("batchInsert方法:,,Controller:{},,fileName:{}",this.getClass().getName(),fileName);
Integer yonghuId = Integer.valueOf(String.valueOf(request.getSession().getAttribute("userId")));
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//.eq("time", new SimpleDateFormat("yyyy-MM-dd").format(new Date()))
try {
List<YonghuEntity> yonghuList = new ArrayList<>();//上传的东西
Map<String, List<String>> seachFields= new HashMap<>();//要查询的字段
Date date = new Date();
int lastIndexOf = fileName.lastIndexOf(".");
if(lastIndexOf == -1){
return R.error(511,"该文件没有后缀");
}else{
String suffix = fileName.substring(lastIndexOf);
if(!".xls".equals(suffix)){
return R.error(511,"只支持后缀为xls的excel文件");
}else{
URL resource = this.getClass().getClassLoader().getResource("static/upload/" + fileName);//获取文件路径
File file = new File(resource.getFile());
if(!file.exists()){
return R.error(511,"找不到上传文件,请联系管理员");
}else{
List<List<String>> dataList = PoiUtil.poiImport(file.getPath());//读取xls文件
dataList.remove(0);//删除第一行,因为第一行是提示
for(List<String> data:dataList){
//循环
YonghuEntity yonghuEntity = new YonghuEntity();
// yonghuEntity.setUsername(data.get(0)); //账户 要改的
// yonghuEntity.setPassword("123456");//密码
// yonghuEntity.setYonghuUuidNumber(data.get(0)); //用户编号 要改的
// yonghuEntity.setYonghuName(data.get(0)); //用户姓名 要改的
// yonghuEntity.setYonghuPhone(data.get(0)); //用户手机号 要改的
// yonghuEntity.setYonghuIdNumber(data.get(0)); //用户身份证号 要改的
// yonghuEntity.setYonghuPhoto("");//详情和图片
// yonghuEntity.setSexTypes(Integer.valueOf(data.get(0))); //性别 要改的
// yonghuEntity.setNewMoney(data.get(0)); //余额 要改的
// yonghuEntity.setYonghuEmail(data.get(0)); //用户邮箱 要改的
// yonghuEntity.setCreateTime(date);//时间
yonghuList.add(yonghuEntity);
//把要查询是否重复的字段放入map中
//账户
if(seachFields.containsKey("username")){
List<String> username = seachFields.get("username");
username.add(data.get(0));//要改的
}else{
List<String> username = new ArrayList<>();
username.add(data.get(0));//要改的
seachFields.put("username",username);
}
//用户编号
if(seachFields.containsKey("yonghuUuidNumber")){
List<String> yonghuUuidNumber = seachFields.get("yonghuUuidNumber");
yonghuUuidNumber.add(data.get(0));//要改的
}else{
List<String> yonghuUuidNumber = new ArrayList<>();
yonghuUuidNumber.add(data.get(0));//要改的
seachFields.put("yonghuUuidNumber",yonghuUuidNumber);
}
//用户手机号
if(seachFields.containsKey("yonghuPhone")){
List<String> yonghuPhone = seachFields.get("yonghuPhone");
yonghuPhone.add(data.get(0));//要改的
}else{
List<String> yonghuPhone = new ArrayList<>();
yonghuPhone.add(data.get(0));//要改的
seachFields.put("yonghuPhone",yonghuPhone);
}
//用户身份证号
if(seachFields.containsKey("yonghuIdNumber")){
List<String> yonghuIdNumber = seachFields.get("yonghuIdNumber");
yonghuIdNumber.add(data.get(0));//要改的
}else{
List<String> yonghuIdNumber = new ArrayList<>();
yonghuIdNumber.add(data.get(0));//要改的
seachFields.put("yonghuIdNumber",yonghuIdNumber);
}
}
//查询是否重复
//账户
List<YonghuEntity> yonghuEntities_username = yonghuService.selectList(new EntityWrapper<YonghuEntity>().in("username", seachFields.get("username")));
if(yonghuEntities_username.size() >0 ){
ArrayList<String> repeatFields = new ArrayList<>();
for(YonghuEntity s:yonghuEntities_username){
repeatFields.add(s.getUsername());
}
return R.error(511,"数据库的该表中的 [账户] 字段已经存在 存在数据为:"+repeatFields.toString());
}
//用户编号
List<YonghuEntity> yonghuEntities_yonghuUuidNumber = yonghuService.selectList(new EntityWrapper<YonghuEntity>().in("yonghu_uuid_number", seachFields.get("yonghuUuidNumber")));
if(yonghuEntities_yonghuUuidNumber.size() >0 ){
ArrayList<String> repeatFields = new ArrayList<>();
for(YonghuEntity s:yonghuEntities_yonghuUuidNumber){
repeatFields.add(s.getYonghuUuidNumber());
}
return R.error(511,"数据库的该表中的 [用户编号] 字段已经存在 存在数据为:"+repeatFields.toString());
}
//用户手机号
List<YonghuEntity> yonghuEntities_yonghuPhone = yonghuService.selectList(new EntityWrapper<YonghuEntity>().in("yonghu_phone", seachFields.get("yonghuPhone")));
if(yonghuEntities_yonghuPhone.size() >0 ){
ArrayList<String> repeatFields = new ArrayList<>();
for(YonghuEntity s:yonghuEntities_yonghuPhone){
repeatFields.add(s.getYonghuPhone());
}
return R.error(511,"数据库的该表中的 [用户手机号] 字段已经存在 存在数据为:"+repeatFields.toString());
}
//用户身份证号
List<YonghuEntity> yonghuEntities_yonghuIdNumber = yonghuService.selectList(new EntityWrapper<YonghuEntity>().in("yonghu_id_number", seachFields.get("yonghuIdNumber")));
if(yonghuEntities_yonghuIdNumber.size() >0 ){
ArrayList<String> repeatFields = new ArrayList<>();
for(YonghuEntity s:yonghuEntities_yonghuIdNumber){
repeatFields.add(s.getYonghuIdNumber());
}
return R.error(511,"数据库的该表中的 [用户身份证号] 字段已经存在 存在数据为:"+repeatFields.toString());
}
yonghuService.insertBatch(yonghuList);
return R.ok();
}
}
}
}catch (Exception e){
e.printStackTrace();
return R.error(511,"批量插入数据异常,请联系管理员");
}
}
/** * 登录
*/
@IgnoreAuth
@RequestMapping(value = "/login")
public R login(String username, String password, String captcha, HttpServletRequest request) {
YonghuEntity yonghu = yonghuService.selectOne(new EntityWrapper<YonghuEntity>().eq("username", username));
if(yonghu==null || !yonghu.getPassword().equals(password))
return R.error("账号或密码不正确");
String token = tokenService.generateToken(yonghu.getId(),username, "yonghu", "用户");
R r = R.ok();
r.put("token", token);
r.put("role","用户");
r.put("username",yonghu.getYonghuName());
r.put("tableName","yonghu");
r.put("userId",yonghu.getId());
return r;
}
/** * 注册
*/
@IgnoreAuth
@PostMapping(value = "/register")
public R register(@RequestBody YonghuEntity yonghu, HttpServletRequest request) {
// ValidatorUtils.validateEntity(user);
Wrapper<YonghuEntity> queryWrapper = new EntityWrapper<YonghuEntity>()
.eq("username", yonghu.getUsername())
.or()
.eq("yonghu_phone", yonghu.getYonghuPhone())
.or()
.eq("yonghu_id_number", yonghu.getYonghuIdNumber())
;
YonghuEntity yonghuEntity = yonghuService.selectOne(queryWrapper);
if(yonghuEntity != null)
return R.error("账户或者用户手机号或者用户身份证号已经被使用");
yonghu.setYonghuUuidNumber(String.valueOf(new Date().getTime()));
yonghu.setNewMoney(0.0);
yonghu.setCreateTime(new Date());
yonghuService.insert(yonghu);
return R.ok();
}
/** * 重置密码
*/
@GetMapping(value = "/resetPassword")
public R resetPassword(Integer id, HttpServletRequest request) {
YonghuEntity yonghu = yonghuService.selectById(id);
yonghu.setPassword("123456");
yonghuService.updateById(yonghu);
return R.ok();
}
/** * 修改密码
*/
@GetMapping(value = "/updatePassword")
public R updatePassword(String oldPassword, String newPassword, HttpServletRequest request) {
YonghuEntity yonghu = yonghuService.selectById((Integer)request.getSession().getAttribute("userId"));
if(newPassword == null){
return R.error("新密码不能为空") ;
}
if(!oldPassword.equals(yonghu.getPassword())){
return R.error("原密码输入错误");
}
if(newPassword.equals(yonghu.getPassword())){
return R.error("新密码不能和原密码一致") ;
}
yonghu.setPassword(newPassword);
yonghuService.updateById(yonghu);
return R.ok();
}
/** * 忘记密码
*/
@IgnoreAuth
@RequestMapping(value = "/resetPass")
public R resetPass(String username, HttpServletRequest request) {
YonghuEntity yonghu = yonghuService.selectOne(new EntityWrapper<YonghuEntity>().eq("username", username));
if(yonghu!=null){
yonghu.setPassword("123456");
yonghuService.updateById(yonghu);
return R.ok();
}else{
return R.error("账号不存在");
}
}
/** * 获取用户的session用户信息
*/
@RequestMapping("/session")
public R getCurrYonghu(HttpServletRequest request){
Integer id = (Integer)request.getSession().getAttribute("userId");
YonghuEntity yonghu = yonghuService.selectById(id);
if(yonghu !=null){
//entity转view
YonghuView view = new YonghuView();
BeanUtils.copyProperties( yonghu , view );//把实体数据重构到view中
//修改对应字典表字段
dictionaryService.dictionaryConvert(view, request);
return R.ok().put("data", view);
}else {
return R.error(511,"查不到数据");
}
}
/** * 退出
*/
@GetMapping(value = "logout")
public R logout(HttpServletRequest request) {
request.getSession().invalidate();
return R.ok("退出成功");
}
/** * 前端列表
*/
@IgnoreAuth
@RequestMapping("/list")
public R list(@RequestParam Map<String, Object> params, HttpServletRequest request){
logger.debug("list方法:,,Controller:{},,params:{}",this.getClass().getName(),JSONObject.toJSONString(params));
CommonUtil.checkMap(params);
PageUtils page = yonghuService.queryPage(params);
//字典表数据转换
List<YonghuView> list =(List<YonghuView>)page.getList();
for(YonghuView c:list)
dictionaryService.dictionaryConvert(c, request); //修改对应字典表字段
return R.ok().put("data", page);
}
/** * 前端详情
*/
@RequestMapping("/detail/{id}")
public R detail(@PathVariable("id") Integer id, HttpServletRequest request){
logger.debug("detail方法:,,Controller:{},,id:{}",this.getClass().getName(),id);
YonghuEntity yonghu = yonghuService.selectById(id);
if(yonghu !=null){
//entity转view
YonghuView view = new YonghuView();
BeanUtils.copyProperties( yonghu , view );//把实体数据重构到view中
//修改对应字典表字段
dictionaryService.dictionaryConvert(view, request);
return R.ok().put("data", view);
}else {
return R.error(511,"查不到数据");
}
}
/** * 前端保存
*/
@RequestMapping("/add")
public R add(@RequestBody YonghuEntity yonghu, HttpServletRequest request){
logger.debug("add方法:,,Controller:{},,yonghu:{}",this.getClass().getName(),yonghu.toString());
Wrapper<YonghuEntity> queryWrapper = new EntityWrapper<YonghuEntity>()
.eq("username", yonghu.getUsername())
.or()
.eq("yonghu_phone", yonghu.getYonghuPhone())
.or()
.eq("yonghu_id_number", yonghu.getYonghuIdNumber())
// .notIn("yonghu_types", new Integer[]{102})
;
logger.info("sql语句:"+queryWrapper.getSqlSegment());
YonghuEntity yonghuEntity = yonghuService.selectOne(queryWrapper);
if(yonghuEntity==null){
yonghu.setCreateTime(new Date());
yonghu.setPassword("123456");
yonghuService.insert(yonghu);
return R.ok();
}else {
return R.error(511,"账户或者用户手机号或者用户身份证号已经被使用");
}
}
}
AI写代码
