基于SpringBoot和Mybatis的农产品销售系统/商城
本系统分为用户、店家和管理员三种角色;
1、登录/注册,2、主页浏览,3、商家店铺浏览,4、评论浏览,5、发表评论,6、农产品浏览,7、自然风光介绍,8、修改个人信息,9、查看农产品介绍,10、修改个人资料,11、查看订单,12、编辑收获地址,13、收藏农产品和查看收藏,14、购买农产品,15、查看购物车,16、申请退货,17、查看农业扶贫信息,18、爱心捐赠
1、修改密码,2、修改商家信息,3、商品管理,4、商品分类管理,5、生成地分类管理,6、贫困店家申请管理,7、订单管理
1、修改密码和个人,2、用户管理(新增用户和删除用户),3、商家管理(新增商家和删除商家),4、店铺管理,5、商品管理,6、商品分类管理,7、生产产地分类管理,8、爱心捐赠管理,9、贫困店家申请管理,10、贫困店家信息管理,11、爱心箱管理,12、退款申请管理,13、轮播图管理,14、自然风光管理,15、全部订单管理
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.DianjiaEntity;
import com.entity.view.DianjiaView;import com.service.DianjiaService;
import com.service.TokenService;
import com.utils.PageUtils;
import com.utils.R;
import com.utils.MD5Util;
import com.utils.MPUtil;
import com.utils.CommonUtil;/*** 店家* 后端接口* @author * @email * @date 2021-04-18 15:18:17*/
@RestController
@RequestMapping("/dianjia")
public class DianjiaController {@Autowiredprivate DianjiaService dianjiaService;@Autowiredprivate TokenService tokenService;/*** 登录*/@IgnoreAuth@RequestMapping(value = "/login")public R login(String username, String password, String captcha, HttpServletRequest request) {DianjiaEntity user = dianjiaService.selectOne(new EntityWrapper().eq("dianjiaming", username));if(user==null || !user.getMima().equals(password)) {return R.error("账号或密码不正确");}String token = tokenService.generateToken(user.getId(), username,"dianjia", "管理员" );return R.ok().put("token", token);}/*** 注册*/@IgnoreAuth@RequestMapping("/register")public R register(@RequestBody DianjiaEntity dianjia){//ValidatorUtils.validateEntity(dianjia);DianjiaEntity user = dianjiaService.selectOne(new EntityWrapper().eq("dianjiaming", dianjia.getDianjiaming()));if(user!=null) {return R.error("注册用户已存在");}Long uId = new Date().getTime();dianjia.setId(uId);dianjiaService.insert(dianjia);return R.ok();}/*** 退出*/@RequestMapping("/logout")public R logout(HttpServletRequest request) {request.getSession().invalidate();return R.ok("退出成功");}/*** 获取用户的session用户信息*/@RequestMapping("/session")public R getCurrUser(HttpServletRequest request){Long id = (Long)request.getSession().getAttribute("userId");DianjiaEntity user = dianjiaService.selectById(id);return R.ok().put("data", user);}/*** 密码重置*/@IgnoreAuth@RequestMapping(value = "/resetPass")public R resetPass(String username, HttpServletRequest request){DianjiaEntity user = dianjiaService.selectOne(new EntityWrapper().eq("dianjiaming", username));if(user==null) {return R.error("账号不存在");}user.setMima("123456");dianjiaService.updateById(user);return R.ok("密码已重置为:123456");}/*** 后端列表*/@RequestMapping("/page")public R page(@RequestParam Map params,DianjiaEntity dianjia,HttpServletRequest request){EntityWrapper ew = new EntityWrapper();PageUtils page = dianjiaService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, dianjia), params), params));return R.ok().put("data", page);}/*** 前端列表*/@RequestMapping("/list")public R list(@RequestParam Map params,DianjiaEntity dianjia, HttpServletRequest request){EntityWrapper ew = new EntityWrapper();PageUtils page = dianjiaService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, dianjia), params), params));return R.ok().put("data", page);}/*** 列表*/@RequestMapping("/lists")public R list( DianjiaEntity dianjia){EntityWrapper ew = new EntityWrapper();ew.allEq(MPUtil.allEQMapPre( dianjia, "dianjia")); return R.ok().put("data", dianjiaService.selectListView(ew));}/*** 查询*/@RequestMapping("/query")public R query(DianjiaEntity dianjia){EntityWrapper< DianjiaEntity> ew = new EntityWrapper< DianjiaEntity>();ew.allEq(MPUtil.allEQMapPre( dianjia, "dianjia")); DianjiaView dianjiaView = dianjiaService.selectView(ew);return R.ok("查询店家成功").put("data", dianjiaView);}/*** 后端详情*/@RequestMapping("/info/{id}")public R info(@PathVariable("id") Long id){DianjiaEntity dianjia = dianjiaService.selectById(id);return R.ok().put("data", dianjia);}/*** 前端详情*/@RequestMapping("/detail/{id}")public R detail(@PathVariable("id") Long id){DianjiaEntity dianjia = dianjiaService.selectById(id);return R.ok().put("data", dianjia);}/*** 后端保存*/@RequestMapping("/save")public R save(@RequestBody DianjiaEntity dianjia, HttpServletRequest request){dianjia.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());//ValidatorUtils.validateEntity(dianjia);DianjiaEntity user = dianjiaService.selectOne(new EntityWrapper().eq("dianjiaming", dianjia.getDianjiaming()));if(user!=null) {return R.error("用户已存在");}dianjia.setId(new Date().getTime());dianjiaService.insert(dianjia);return R.ok();}/*** 前端保存*/@RequestMapping("/add")public R add(@RequestBody DianjiaEntity dianjia, HttpServletRequest request){dianjia.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());//ValidatorUtils.validateEntity(dianjia);DianjiaEntity user = dianjiaService.selectOne(new EntityWrapper().eq("dianjiaming", dianjia.getDianjiaming()));if(user!=null) {return R.error("用户已存在");}dianjia.setId(new Date().getTime());dianjiaService.insert(dianjia);return R.ok();}/*** 修改*/@RequestMapping("/update")public R update(@RequestBody DianjiaEntity dianjia, HttpServletRequest request){//ValidatorUtils.validateEntity(dianjia);dianjiaService.updateById(dianjia);//全部更新return R.ok();}/*** 删除*/@RequestMapping("/delete")public R delete(@RequestBody Long[] ids){dianjiaService.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 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 wrapper = new EntityWrapper();if(map.get("remindstart")!=null) {wrapper.ge(columnName, map.get("remindstart"));}if(map.get("remindend")!=null) {wrapper.le(columnName, map.get("remindend"));}int count = dianjiaService.selectCount(wrapper);return R.ok().put("count", count);}}
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.OrdersEntity;
import com.entity.view.OrdersView;import com.service.OrdersService;
import com.service.TokenService;
import com.utils.PageUtils;
import com.utils.R;
import com.utils.MD5Util;
import com.utils.MPUtil;
import com.utils.CommonUtil;/*** 订单* 后端接口* @author * @email * @date 2021-04-18 15:18:17*/
@RestController
@RequestMapping("/orders")
public class OrdersController {@Autowiredprivate OrdersService ordersService;/*** 后端列表*/@RequestMapping("/page")public R page(@RequestParam Map params,OrdersEntity orders,HttpServletRequest request){if(!request.getSession().getAttribute("role").toString().equals("管理员")) {orders.setUserid((Long)request.getSession().getAttribute("userId"));}EntityWrapper ew = new EntityWrapper();PageUtils page = ordersService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, orders), params), params));return R.ok().put("data", page);}/*** 前端列表*/@RequestMapping("/list")public R list(@RequestParam Map params,OrdersEntity orders, HttpServletRequest request){EntityWrapper ew = new EntityWrapper();PageUtils page = ordersService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, orders), params), params));return R.ok().put("data", page);}/*** 列表*/@RequestMapping("/lists")public R list( OrdersEntity orders){EntityWrapper ew = new EntityWrapper();ew.allEq(MPUtil.allEQMapPre( orders, "orders")); return R.ok().put("data", ordersService.selectListView(ew));}/*** 查询*/@RequestMapping("/query")public R query(OrdersEntity orders){EntityWrapper< OrdersEntity> ew = new EntityWrapper< OrdersEntity>();ew.allEq(MPUtil.allEQMapPre( orders, "orders")); OrdersView ordersView = ordersService.selectView(ew);return R.ok("查询订单成功").put("data", ordersView);}/*** 后端详情*/@RequestMapping("/info/{id}")public R info(@PathVariable("id") Long id){OrdersEntity orders = ordersService.selectById(id);return R.ok().put("data", orders);}/*** 前端详情*/@RequestMapping("/detail/{id}")public R detail(@PathVariable("id") Long id){OrdersEntity orders = ordersService.selectById(id);return R.ok().put("data", orders);}/*** 后端保存*/@RequestMapping("/save")public R save(@RequestBody OrdersEntity orders, HttpServletRequest request){orders.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());//ValidatorUtils.validateEntity(orders);orders.setUserid((Long)request.getSession().getAttribute("userId"));ordersService.insert(orders);return R.ok();}/*** 前端保存*/@RequestMapping("/add")public R add(@RequestBody OrdersEntity orders, HttpServletRequest request){orders.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());//ValidatorUtils.validateEntity(orders);ordersService.insert(orders);return R.ok();}/*** 修改*/@RequestMapping("/update")public R update(@RequestBody OrdersEntity orders, HttpServletRequest request){//ValidatorUtils.validateEntity(orders);ordersService.updateById(orders);//全部更新return R.ok();}/*** 删除*/@RequestMapping("/delete")public R delete(@RequestBody Long[] ids){ordersService.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 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 wrapper = new EntityWrapper();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 = ordersService.selectCount(wrapper);return R.ok().put("count", count);}}
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.ShangpinEntity;
import com.entity.view.ShangpinView;import com.service.ShangpinService;
import com.service.TokenService;
import com.utils.PageUtils;
import com.utils.R;
import com.utils.MD5Util;
import com.utils.MPUtil;
import com.utils.CommonUtil;/*** 商品* 后端接口* @author * @email * @date 2021-04-18 15:18:17*/
@RestController
@RequestMapping("/shangpin")
public class ShangpinController {@Autowiredprivate ShangpinService shangpinService;/*** 后端列表*/@RequestMapping("/page")public R page(@RequestParam Map params,ShangpinEntity shangpin,HttpServletRequest request){String tableName = request.getSession().getAttribute("tableName").toString();if(tableName.equals("dianjia")) {shangpin.setDianjiaming((String)request.getSession().getAttribute("username"));}EntityWrapper ew = new EntityWrapper();PageUtils page = shangpinService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, shangpin), params), params));return R.ok().put("data", page);}/*** 前端列表*/@IgnoreAuth@RequestMapping("/list")public R list(@RequestParam Map params,ShangpinEntity shangpin, HttpServletRequest request){EntityWrapper ew = new EntityWrapper();PageUtils page = shangpinService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, shangpin), params), params));return R.ok().put("data", page);}/*** 列表*/@RequestMapping("/lists")public R list( ShangpinEntity shangpin){EntityWrapper ew = new EntityWrapper();ew.allEq(MPUtil.allEQMapPre( shangpin, "shangpin")); return R.ok().put("data", shangpinService.selectListView(ew));}/*** 查询*/@RequestMapping("/query")public R query(ShangpinEntity shangpin){EntityWrapper< ShangpinEntity> ew = new EntityWrapper< ShangpinEntity>();ew.allEq(MPUtil.allEQMapPre( shangpin, "shangpin")); ShangpinView shangpinView = shangpinService.selectView(ew);return R.ok("查询商品成功").put("data", shangpinView);}/*** 后端详情*/@RequestMapping("/info/{id}")public R info(@PathVariable("id") Long id){ShangpinEntity shangpin = shangpinService.selectById(id);shangpin.setClicktime(new Date());shangpinService.updateById(shangpin);return R.ok().put("data", shangpin);}/*** 前端详情*/@RequestMapping("/detail/{id}")public R detail(@PathVariable("id") Long id){ShangpinEntity shangpin = shangpinService.selectById(id);shangpin.setClicktime(new Date());shangpinService.updateById(shangpin);return R.ok().put("data", shangpin);}/*** 赞或踩*/@RequestMapping("/thumbsup/{id}")public R vote(@PathVariable("id") String id,String type){ShangpinEntity shangpin = shangpinService.selectById(id);if(type.equals("1")) {shangpin.setThumbsupnum(shangpin.getThumbsupnum()+1);} else {shangpin.setCrazilynum(shangpin.getCrazilynum()+1);}shangpinService.updateById(shangpin);return R.ok("投票成功");}/*** 后端保存*/@RequestMapping("/save")public R save(@RequestBody ShangpinEntity shangpin, HttpServletRequest request){shangpin.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());//ValidatorUtils.validateEntity(shangpin);shangpinService.insert(shangpin);return R.ok();}/*** 前端保存*/@RequestMapping("/add")public R add(@RequestBody ShangpinEntity shangpin, HttpServletRequest request){shangpin.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());//ValidatorUtils.validateEntity(shangpin);shangpinService.insert(shangpin);return R.ok();}/*** 修改*/@RequestMapping("/update")public R update(@RequestBody ShangpinEntity shangpin, HttpServletRequest request){//ValidatorUtils.validateEntity(shangpin);shangpinService.updateById(shangpin);//全部更新return R.ok();}/*** 删除*/@RequestMapping("/delete")public R delete(@RequestBody Long[] ids){shangpinService.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 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 wrapper = new EntityWrapper();if(map.get("remindstart")!=null) {wrapper.ge(columnName, map.get("remindstart"));}if(map.get("remindend")!=null) {wrapper.le(columnName, map.get("remindend"));}String tableName = request.getSession().getAttribute("tableName").toString();if(tableName.equals("dianjia")) {wrapper.eq("dianjiaming", (String)request.getSession().getAttribute("username"));}int count = shangpinService.selectCount(wrapper);return R.ok().put("count", count);}/*** 前端智能排序*/@IgnoreAuth@RequestMapping("/autoSort")public R autoSort(@RequestParam Map params,ShangpinEntity shangpin, HttpServletRequest request,String pre){EntityWrapper ew = new EntityWrapper();Map newMap = new HashMap();Map param = new HashMap();Iterator> it = param.entrySet().iterator();while (it.hasNext()) {Map.Entry entry = it.next();String key = entry.getKey();String newKey = entry.getKey();if (pre.endsWith(".")) {newMap.put(pre + newKey, entry.getValue());} else if (StringUtils.isEmpty(pre)) {newMap.put(newKey, entry.getValue());} else {newMap.put(pre + "." + newKey, entry.getValue());}}params.put("sort", "clicktime");params.put("order", "desc");PageUtils page = shangpinService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, shangpin), params), params));return R.ok().put("data", page);}}
下一篇:spring事务失效原因