基于springboot特产销售平台源码和论文

2024-02-18 06:28

本文主要是介绍基于springboot特产销售平台源码和论文,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

“互联网+”的战略实施后,很多行业的信息化水平都有了很大的提升。但是目前很多藏区特产销售信息仍是通过人工管理的方式进行,需要在各个岗位投入大量的人力进行很多重复性工作,使得对人力物力造成诸多浪费,工作效率不高等情况;同时为后续的工作带来了隐患。并且现有的藏区特产销售平台由于用户的体验感较差、系统流程不完善导致系统的使用率较低。此藏区特产销售平台的部署与应用,将对特产信息管理、特产分类管理、特产分类管理、特产评分管理、系统管理、订单管理等业务进行管理,这可以简化藏区特产销售管理工作程序、降低劳动成本、提高业务效率和工作效率。为了有效推动藏区特产销售管理资源的合理配置和使用,适应现代藏区特产销售管理机构的管理办法,迫切需要研发一套更加全面的藏区特产销售平台

本课题在充分研究了SpringBoot框架基础上,采用B/S模式,以Java为开发语言,MyEclipse为开发工具,MySQL为数据管理平台,实现的内容主要包括首页、个人中心、用户管理、特产信息管理、特产分类管理、特产分类管理、特产评分管理、系统管理、订单管理等功能。

关键词藏区特产销售平台Java;互联网+

基于springboot特产销售平台源码和论文375

演示视频:

基于springboot特产销售平台源码和论文

Abstract

After the implementation of the "Internet plus" strategy, the informatization level of many industries has been greatly improved. However, at present, a lot of sales information of Tibetan specialties is still carried out by manual management, which requires a lot of manpower to be invested in various posts for a lot of repetitive work, resulting in a lot of waste of human and material resources and low work efficiency. At the same time for the follow-up work brought hidden trouble. In addition, the existing Tibetan specialty sales platform has a low utilization rate due to poor user experience and imperfect system process. The deployment and application of the Tibetan specialty sales platform will manage the specialty information management, specialty classification management, specialty classification management, specialty scoring management, system management, order management and other businesses, which can simplify the Tibetan specialty sales management work procedures, reduce labor costs, improve business efficiency and work efficiency. In order to effectively promote the rational allocation and use of Tibetan specialty sales management resources and adapt to the management methods of modern Tibetan specialty sales management organizations, it is urgent to develop a more comprehensive Tibetan specialty sales platform.

This topic is based on the full study of SpringBoot framework, using B/S mode, Java as the development language, MyEclipse as the development tool, MySQL as the data management platform, The main contents include home page, personal center, user management, specialty information management, specialty classification management, specialty classification management, specialty scoring management, system management, order management and other functions.

Key words: Tibetan specialty sales platform; Java; Internet +

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.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.AddressEntity;
import com.entity.view.AddressView;import com.service.AddressService;
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-04-06 15:28:34*/
@RestController
@RequestMapping("/address")
public class AddressController {@Autowiredprivate AddressService addressService;/*** 后端列表*/@RequestMapping("/page")public R page(@RequestParam Map<String, Object> params,AddressEntity address,HttpServletRequest request){if(!request.getSession().getAttribute("role").toString().equals("管理员")) {address.setUserid((Long)request.getSession().getAttribute("userId"));}EntityWrapper<AddressEntity> ew = new EntityWrapper<AddressEntity>();PageUtils page = addressService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, address), params), params));return R.ok().put("data", page);}/*** 前端列表*/@RequestMapping("/list")public R list(@RequestParam Map<String, Object> params,AddressEntity address, HttpServletRequest request){if(!request.getSession().getAttribute("role").toString().equals("管理员")) {address.setUserid((Long)request.getSession().getAttribute("userId"));}EntityWrapper<AddressEntity> ew = new EntityWrapper<AddressEntity>();PageUtils page = addressService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, address), params), params));return R.ok().put("data", page);}/*** 列表*/@RequestMapping("/lists")public R list( AddressEntity address){EntityWrapper<AddressEntity> ew = new EntityWrapper<AddressEntity>();ew.allEq(MPUtil.allEQMapPre( address, "address")); return R.ok().put("data", addressService.selectListView(ew));}/*** 查询*/@RequestMapping("/query")public R query(AddressEntity address){EntityWrapper< AddressEntity> ew = new EntityWrapper< AddressEntity>();ew.allEq(MPUtil.allEQMapPre( address, "address")); AddressView addressView =  addressService.selectView(ew);return R.ok("查询地址成功").put("data", addressView);}/*** 后端详情*/@RequestMapping("/info/{id}")public R info(@PathVariable("id") Long id){AddressEntity address = addressService.selectById(id);return R.ok().put("data", address);}/*** 前端详情*/@IgnoreAuth@RequestMapping("/detail/{id}")public R detail(@PathVariable("id") Long id){AddressEntity address = addressService.selectById(id);return R.ok().put("data", address);}/*** 后端保存*/@RequestMapping("/save")public R save(@RequestBody AddressEntity address, HttpServletRequest request){address.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());//ValidatorUtils.validateEntity(address);address.setUserid((Long)request.getSession().getAttribute("userId"));Long userId = (Long)request.getSession().getAttribute("userId");if(address.getIsdefault().equals("是")) {addressService.updateForSet("isdefault='否'", new EntityWrapper<AddressEntity>().eq("userid", userId));}address.setUserid(userId);addressService.insert(address);return R.ok();}/*** 前端保存*/@RequestMapping("/add")public R add(@RequestBody AddressEntity address, HttpServletRequest request){address.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());//ValidatorUtils.validateEntity(address);address.setUserid((Long)request.getSession().getAttribute("userId"));Long userId = (Long)request.getSession().getAttribute("userId");if(address.getIsdefault().equals("是")) {addressService.updateForSet("isdefault='否'", new EntityWrapper<AddressEntity>().eq("userid", userId));}address.setUserid(userId);addressService.insert(address);return R.ok();}/*** 修改*/@RequestMapping("/update")public R update(@RequestBody AddressEntity address, HttpServletRequest request){//ValidatorUtils.validateEntity(address);if(address.getIsdefault().equals("是")) {addressService.updateForSet("isdefault='否'", new EntityWrapper<AddressEntity>().eq("userid", request.getSession().getAttribute("userId")));}addressService.updateById(address);//全部更新return R.ok();}/*** 获取默认地址*/@RequestMapping("/default")public R defaultAddress(HttpServletRequest request){Wrapper<AddressEntity> wrapper = new EntityWrapper<AddressEntity>().eq("isdefault", "是").eq("userid", request.getSession().getAttribute("userId"));AddressEntity address = addressService.selectOne(wrapper);return R.ok().put("data", address);}/*** 删除*/@RequestMapping("/delete")public R delete(@RequestBody Long[] ids){addressService.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<AddressEntity> wrapper = new EntityWrapper<AddressEntity>();if(map.get("remindstart")!=null) {wrapper.ge(columnName, map.get("remindstart"));}if(map.get("remindend")!=null) {wrapper.le(columnName, map.get("remindend"));}if(!request.getSession().getAttribute("role").toString().equals("管理员")) {wrapper.eq("userid", (Long)request.getSession().getAttribute("userId"));}int count = addressService.selectCount(wrapper);return R.ok().put("count", count);}}

 


package com.controller;import com.alibaba.fastjson.JSONObject;
import com.annotation.IgnoreAuth;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.entity.ZhuanjiaEntity;
import com.entity.view.ZhuanjiaView;
import com.service.DictionaryService;
import com.service.HuiyuanService;
import com.service.TokenService;
import com.service.ZhuanjiaService;
import com.utils.PageUtils;
import com.utils.PoiUtil;
import com.utils.R;
import com.utils.StringUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;import javax.servlet.http.HttpServletRequest;
import java.io.File;
import java.net.URL;
import java.text.SimpleDateFormat;
import java.util.*;/*** 医生* 后端接口* @author* @email
*/
@RestController
@Controller
@RequestMapping("/zhuanjia")
public class ZhuanjiaController {private static final Logger logger = LoggerFactory.getLogger(ZhuanjiaController.class);@Autowiredprivate ZhuanjiaService zhuanjiaService;@Autowiredprivate TokenService tokenService;@Autowiredprivate DictionaryService dictionaryService;//级联表service@Autowiredprivate HuiyuanService huiyuanService;/*** 后端列表*/@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("用户 show2 photoShow".equals(role))params.put("huiyuanId",request.getSession().getAttribute("userId"));else if("医生".equals(role))params.put("zhuanjiaId",request.getSession().getAttribute("userId"));params.put("zhuanjiaDeleteStart",1);params.put("zhuanjiaDeleteEnd",1);if(params.get("orderBy")==null || params.get("orderBy")==""){params.put("orderBy","id");}PageUtils page = zhuanjiaService.queryPage(params);//字典表数据转换List<ZhuanjiaView> list =(List<ZhuanjiaView>)page.getList();for(ZhuanjiaView 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);ZhuanjiaEntity zhuanjia = zhuanjiaService.selectById(id);if(zhuanjia !=null){//entity转viewZhuanjiaView view = new ZhuanjiaView();BeanUtils.copyProperties( zhuanjia , view );//把实体数据重构到view中//修改对应字典表字段dictionaryService.dictionaryConvert(view, request);return R.ok().put("data", view);}else {return R.error(511,"查不到数据");}}/*** 后端保存*/@RequestMapping("/save")public R save(@RequestBody ZhuanjiaEntity zhuanjia, HttpServletRequest request){logger.debug("save方法:,,Controller:{},,zhuanjia:{}",this.getClass().getName(),zhuanjia.toString());String role = String.valueOf(request.getSession().getAttribute("role"));if(false)return R.error(511,"永远不会进入");Wrapper<ZhuanjiaEntity> queryWrapper = new EntityWrapper<ZhuanjiaEntity>().eq("username", zhuanjia.getUsername()).or().eq("zhuanjia_phone", zhuanjia.getZhuanjiaPhone()).or().eq("zhuanjia_id_number", zhuanjia.getZhuanjiaIdNumber()).andNew().eq("zhuanjia_delete", 1);logger.info("sql语句:"+queryWrapper.getSqlSegment());ZhuanjiaEntity zhuanjiaEntity = zhuanjiaService.selectOne(queryWrapper);if(zhuanjiaEntity==null){zhuanjia.setZhuanjiaDelete(1);zhuanjia.setInsertTime(new Date());zhuanjia.setCreateTime(new Date());zhuanjia.setPassword("123456");zhuanjiaService.insert(zhuanjia);return R.ok();}else {return R.error(511,"账户或者医生手机号或者医生身份证号已经被使用");}}/*** 后端修改*/@RequestMapping("/update")public R update(@RequestBody ZhuanjiaEntity zhuanjia, HttpServletRequest request){logger.debug("update方法:,,Controller:{},,zhuanjia:{}",this.getClass().getName(),zhuanjia.toString());String role = String.valueOf(request.getSession().getAttribute("role"));
//        if(false)
//            return R.error(511,"永远不会进入");//根据字段查询是否有相同数据Wrapper<ZhuanjiaEntity> queryWrapper = new EntityWrapper<ZhuanjiaEntity>().notIn("id",zhuanjia.getId()).andNew().eq("username", zhuanjia.getUsername()).or().eq("zhuanjia_phone", zhuanjia.getZhuanjiaPhone()).or().eq("zhuanjia_id_number", zhuanjia.getZhuanjiaIdNumber()).andNew().eq("zhuanjia_delete", 1);logger.info("sql语句:"+queryWrapper.getSqlSegment());ZhuanjiaEntity zhuanjiaEntity = zhuanjiaService.selectOne(queryWrapper);if("".equals(zhuanjia.getZhuanjiaPhoto()) || "null".equals(zhuanjia.getZhuanjiaPhoto())){zhuanjia.setZhuanjiaPhoto(null);}if(zhuanjiaEntity==null){zhuanjiaService.updateById(zhuanjia);//根据id更新return R.ok();}else {return R.error(511,"账户或者医生手机号或者医生身份证号已经被使用");}}/*** 删除*/@RequestMapping("/delete")public R delete(@RequestBody Integer[] ids){logger.debug("delete:,,Controller:{},,ids:{}",this.getClass().getName(),ids.toString());ArrayList<ZhuanjiaEntity> list = new ArrayList<>();for(Integer id:ids){ZhuanjiaEntity zhuanjiaEntity = new ZhuanjiaEntity();zhuanjiaEntity.setId(id);zhuanjiaEntity.setZhuanjiaDelete(2);list.add(zhuanjiaEntity);}if(list != null && list.size() >0){zhuanjiaService.updateBatchById(list);}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<ZhuanjiaEntity> zhuanjiaList = 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){//循环ZhuanjiaEntity zhuanjiaEntity = new ZhuanjiaEntity();
//                            zhuanjiaEntity.setUsername(data.get(0));                    //账户 要改的
//                            //zhuanjiaEntity.setPassword("123456");//密码
//                            zhuanjiaEntity.setZhuanjiaName(data.get(0));                    //医生姓名 要改的
//                            zhuanjiaEntity.setZhuanjiaPhone(data.get(0));                    //医生手机号 要改的
//                            zhuanjiaEntity.setZhuanjiaIdNumber(data.get(0));                    //医生身份证号 要改的
//                            zhuanjiaEntity.setZhuanjiaPhoto("");//详情和图片
//                            zhuanjiaEntity.setSexTypes(Integer.valueOf(data.get(0)));   //性别 要改的
//                            zhuanjiaEntity.setKeshiTypes(Integer.valueOf(data.get(0)));   //科室 要改的
//                            zhuanjiaEntity.setZhiweiTypes(Integer.valueOf(data.get(0)));   //职位 要改的
//                            zhuanjiaEntity.setGuahaoMoney(data.get(0));                    //挂号费 要改的
//                            zhuanjiaEntity.setZhuanjiaEmail(data.get(0));                    //电子邮箱 要改的
//                            zhuanjiaEntity.setZhuanjiaContent("");//详情和图片
//                            zhuanjiaEntity.setZhuanjiaDelete(1);//逻辑删除字段
//                            zhuanjiaEntity.setInsertTime(date);//时间
//                            zhuanjiaEntity.setCreateTime(date);//时间
//                            zhuanjiaEntity.setZhuanjiaPaiban(data.get(0));                    //医生排班 要改的zhuanjiaList.add(zhuanjiaEntity);//把要查询是否重复的字段放入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("zhuanjiaPhone")){List<String> zhuanjiaPhone = seachFields.get("zhuanjiaPhone");zhuanjiaPhone.add(data.get(0));//要改的}else{List<String> zhuanjiaPhone = new ArrayList<>();zhuanjiaPhone.add(data.get(0));//要改的seachFields.put("zhuanjiaPhone",zhuanjiaPhone);}//医生身份证号if(seachFields.containsKey("zhuanjiaIdNumber")){List<String> zhuanjiaIdNumber = seachFields.get("zhuanjiaIdNumber");zhuanjiaIdNumber.add(data.get(0));//要改的}else{List<String> zhuanjiaIdNumber = new ArrayList<>();zhuanjiaIdNumber.add(data.get(0));//要改的seachFields.put("zhuanjiaIdNumber",zhuanjiaIdNumber);}}//查询是否重复//账户List<ZhuanjiaEntity> zhuanjiaEntities_username = zhuanjiaService.selectList(new EntityWrapper<ZhuanjiaEntity>().in("username", seachFields.get("username")).eq("zhuanjia_delete", 1));if(zhuanjiaEntities_username.size() >0 ){ArrayList<String> repeatFields = new ArrayList<>();for(ZhuanjiaEntity s:zhuanjiaEntities_username){repeatFields.add(s.getUsername());}return R.error(511,"数据库的该表中的 [账户] 字段已经存在 存在数据为:"+repeatFields.toString());}//医生手机号List<ZhuanjiaEntity> zhuanjiaEntities_zhuanjiaPhone = zhuanjiaService.selectList(new EntityWrapper<ZhuanjiaEntity>().in("zhuanjia_phone", seachFields.get("zhuanjiaPhone")).eq("zhuanjia_delete", 1));if(zhuanjiaEntities_zhuanjiaPhone.size() >0 ){ArrayList<String> repeatFields = new ArrayList<>();for(ZhuanjiaEntity s:zhuanjiaEntities_zhuanjiaPhone){repeatFields.add(s.getZhuanjiaPhone());}return R.error(511,"数据库的该表中的 [医生手机号] 字段已经存在 存在数据为:"+repeatFields.toString());}//医生身份证号List<ZhuanjiaEntity> zhuanjiaEntities_zhuanjiaIdNumber = zhuanjiaService.selectList(new EntityWrapper<ZhuanjiaEntity>().in("zhuanjia_id_number", seachFields.get("zhuanjiaIdNumber")).eq("zhuanjia_delete", 1));if(zhuanjiaEntities_zhuanjiaIdNumber.size() >0 ){ArrayList<String> repeatFields = new ArrayList<>();for(ZhuanjiaEntity s:zhuanjiaEntities_zhuanjiaIdNumber){repeatFields.add(s.getZhuanjiaIdNumber());}return R.error(511,"数据库的该表中的 [医生身份证号] 字段已经存在 存在数据为:"+repeatFields.toString());}zhuanjiaService.insertBatch(zhuanjiaList);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) {ZhuanjiaEntity zhuanjia = zhuanjiaService.selectOne(new EntityWrapper<ZhuanjiaEntity>().eq("username", username));if(zhuanjia==null || !zhuanjia.getPassword().equals(password))return R.error("账号或密码不正确");else if(zhuanjia.getZhuanjiaDelete() != 1)return R.error("账户已被删除");//  // 获取监听器中的字典表// ServletContext servletContext = ContextLoader.getCurrentWebApplicationContext().getServletContext();// Map<String, Map<Integer, String>> dictionaryMap= (Map<String, Map<Integer, String>>) servletContext.getAttribute("dictionaryMap");// Map<Integer, String> role_types = dictionaryMap.get("role_types");// role_types.get(.getRoleTypes());String token = tokenService.generateToken(zhuanjia.getId(),username, "zhuanjia", "医生");R r = R.ok();r.put("token", token);r.put("role","医生");r.put("username",zhuanjia.getZhuanjiaName());r.put("tableName","zhuanjia");r.put("userId",zhuanjia.getId());return r;}/*** 注册*/@IgnoreAuth@PostMapping(value = "/register")public R register(@RequestBody ZhuanjiaEntity zhuanjia){
//    	ValidatorUtils.validateEntity(user);Wrapper<ZhuanjiaEntity> queryWrapper = new EntityWrapper<ZhuanjiaEntity>().eq("username", zhuanjia.getUsername()).or().eq("zhuanjia_phone", zhuanjia.getZhuanjiaPhone()).or().eq("zhuanjia_id_number", zhuanjia.getZhuanjiaIdNumber()).andNew().eq("zhuanjia_delete", 1);ZhuanjiaEntity zhuanjiaEntity = zhuanjiaService.selectOne(queryWrapper);if(zhuanjiaEntity != null)return R.error("账户或者医生手机号或者医生身份证号已经被使用");zhuanjia.setGuahaoMoney(0.0);zhuanjia.setZhuanjiaDelete(1);zhuanjia.setInsertTime(new Date());zhuanjia.setCreateTime(new Date());zhuanjiaService.insert(zhuanjia);return R.ok();}/*** 重置密码*/@GetMapping(value = "/resetPassword")public R resetPassword(Integer  id){ZhuanjiaEntity zhuanjia = new ZhuanjiaEntity();zhuanjia.setPassword("123456");zhuanjia.setId(id);zhuanjia.setInsertTime(new Date());zhuanjiaService.updateById(zhuanjia);return R.ok();}/*** 忘记密码*/@IgnoreAuth@RequestMapping(value = "/resetPass")public R resetPass(String username, HttpServletRequest request) {ZhuanjiaEntity zhuanjia = zhuanjiaService.selectOne(new EntityWrapper<ZhuanjiaEntity>().eq("username", username));if(zhuanjia!=null){zhuanjia.setPassword("123456");boolean b = zhuanjiaService.updateById(zhuanjia);if(!b){return R.error();}}else{return R.error("账号不存在");}return R.ok();}/*** 获取用户的session用户信息*/@RequestMapping("/session")public R getCurrZhuanjia(HttpServletRequest request){Integer id = (Integer)request.getSession().getAttribute("userId");ZhuanjiaEntity zhuanjia = zhuanjiaService.selectById(id);if(zhuanjia !=null){//entity转viewZhuanjiaView view = new ZhuanjiaView();BeanUtils.copyProperties( zhuanjia , 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));// 没有指定排序字段就默认id倒序if(StringUtil.isEmpty(String.valueOf(params.get("orderBy")))){params.put("orderBy","id");}PageUtils page = zhuanjiaService.queryPage(params);//字典表数据转换List<ZhuanjiaView> list =(List<ZhuanjiaView>)page.getList();for(ZhuanjiaView 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);ZhuanjiaEntity zhuanjia = zhuanjiaService.selectById(id);if(zhuanjia !=null){//entity转viewZhuanjiaView view = new ZhuanjiaView();BeanUtils.copyProperties( zhuanjia , view );//把实体数据重构到view中//修改对应字典表字段dictionaryService.dictionaryConvert(view, request);return R.ok().put("data", view);}else {return R.error(511,"查不到数据");}}/*** 前端保存*/@RequestMapping("/add")public R add(@RequestBody ZhuanjiaEntity zhuanjia, HttpServletRequest request){logger.debug("add方法:,,Controller:{},,zhuanjia:{}",this.getClass().getName(),zhuanjia.toString());Wrapper<ZhuanjiaEntity> queryWrapper = new EntityWrapper<ZhuanjiaEntity>().eq("username", zhuanjia.getUsername()).or().eq("zhuanjia_phone", zhuanjia.getZhuanjiaPhone()).or().eq("zhuanjia_id_number", zhuanjia.getZhuanjiaIdNumber()).andNew().eq("zhuanjia_delete", 1);logger.info("sql语句:"+queryWrapper.getSqlSegment());ZhuanjiaEntity zhuanjiaEntity = zhuanjiaService.selectOne(queryWrapper);if(zhuanjiaEntity==null){zhuanjia.setZhuanjiaDelete(1);zhuanjia.setInsertTime(new Date());zhuanjia.setCreateTime(new Date());zhuanjia.setPassword("123456");zhuanjiaService.insert(zhuanjia);return R.ok();}else {return R.error(511,"账户或者医生手机号或者医生身份证号已经被使用");}}}

这篇关于基于springboot特产销售平台源码和论文的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/720314

相关文章

JVM 的类初始化机制

前言 当你在 Java 程序中new对象时,有没有考虑过 JVM 是如何把静态的字节码(byte code)转化为运行时对象的呢,这个问题看似简单,但清楚的同学相信也不会太多,这篇文章首先介绍 JVM 类初始化的机制,然后给出几个易出错的实例来分析,帮助大家更好理解这个知识点。 JVM 将字节码转化为运行时对象分为三个阶段,分别是:loading 、Linking、initialization

Spring Security 基于表达式的权限控制

前言 spring security 3.0已经可以使用spring el表达式来控制授权,允许在表达式中使用复杂的布尔逻辑来控制访问的权限。 常见的表达式 Spring Security可用表达式对象的基类是SecurityExpressionRoot。 表达式描述hasRole([role])用户拥有制定的角色时返回true (Spring security默认会带有ROLE_前缀),去

浅析Spring Security认证过程

类图 为了方便理解Spring Security认证流程,特意画了如下的类图,包含相关的核心认证类 概述 核心验证器 AuthenticationManager 该对象提供了认证方法的入口,接收一个Authentiaton对象作为参数; public interface AuthenticationManager {Authentication authenticate(Authenti

Spring Security--Architecture Overview

1 核心组件 这一节主要介绍一些在Spring Security中常见且核心的Java类,它们之间的依赖,构建起了整个框架。想要理解整个架构,最起码得对这些类眼熟。 1.1 SecurityContextHolder SecurityContextHolder用于存储安全上下文(security context)的信息。当前操作的用户是谁,该用户是否已经被认证,他拥有哪些角色权限…这些都被保

Spring Security基于数据库验证流程详解

Spring Security 校验流程图 相关解释说明(认真看哦) AbstractAuthenticationProcessingFilter 抽象类 /*** 调用 #requiresAuthentication(HttpServletRequest, HttpServletResponse) 决定是否需要进行验证操作。* 如果需要验证,则会调用 #attemptAuthentica

Spring Security 从入门到进阶系列教程

Spring Security 入门系列 《保护 Web 应用的安全》 《Spring-Security-入门(一):登录与退出》 《Spring-Security-入门(二):基于数据库验证》 《Spring-Security-入门(三):密码加密》 《Spring-Security-入门(四):自定义-Filter》 《Spring-Security-入门(五):在 Sprin

Java架构师知识体认识

源码分析 常用设计模式 Proxy代理模式Factory工厂模式Singleton单例模式Delegate委派模式Strategy策略模式Prototype原型模式Template模板模式 Spring5 beans 接口实例化代理Bean操作 Context Ioc容器设计原理及高级特性Aop设计原理Factorybean与Beanfactory Transaction 声明式事物

流媒体平台/视频监控/安防视频汇聚EasyCVR播放暂停后视频画面黑屏是什么原因?

视频智能分析/视频监控/安防监控综合管理系统EasyCVR视频汇聚融合平台,是TSINGSEE青犀视频垂直深耕音视频流媒体技术、AI智能技术领域的杰出成果。该平台以其强大的视频处理、汇聚与融合能力,在构建全栈视频监控系统中展现出了独特的优势。视频监控管理系统EasyCVR平台内置了强大的视频解码、转码、压缩等技术,能够处理多种视频流格式,并以多种格式(RTMP、RTSP、HTTP-FLV、WebS

Java进阶13讲__第12讲_1/2

多线程、线程池 1.  线程概念 1.1  什么是线程 1.2  线程的好处 2.   创建线程的三种方式 注意事项 2.1  继承Thread类 2.1.1 认识  2.1.2  编码实现  package cn.hdc.oop10.Thread;import org.slf4j.Logger;import org.slf4j.LoggerFactory

综合安防管理平台LntonAIServer视频监控汇聚抖动检测算法优势

LntonAIServer视频质量诊断功能中的抖动检测是一个专门针对视频稳定性进行分析的功能。抖动通常是指视频帧之间的不必要运动,这种运动可能是由于摄像机的移动、传输中的错误或编解码问题导致的。抖动检测对于确保视频内容的平滑性和观看体验至关重要。 优势 1. 提高图像质量 - 清晰度提升:减少抖动,提高图像的清晰度和细节表现力,使得监控画面更加真实可信。 - 细节增强:在低光条件下,抖