基于javaweb+mysql的springboot校园二手商品系统(java+springboot+vue+maven+mysql+redis)

基于javaweb+mysql的springboot校园二手商品系统(java+springboot+vue+maven+mysql+redis)

运行环境

Java≥8、MySQL≥5.7、Node.js≥10

开发工具

后端:eclipse/idea/myeclipse/sts等均可配置运行

前端:WebStorm/VSCode/HBuilderX等均可

适用

课程设计,大作业,毕业设计,项目练习,学习演示等

功能说明

基于javaweb+mysql的SpringBoot校园二手商品系统(java+springboot+vue+maven+mysql+redis)

一、项目运行 环境配置:

Jdk1.8 + Tomcat8.5 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。

项目技术:

Spring + SpringBoot+ mybatis + Maven + Vue 等等组成,B/S模式 + Maven管理等等。

				break;
			case 3 :
				percent= 0.97;
				break;
			case 2 :
				percent= 0.98;
				break;
			case 1 :
				percent= 0.99;
				break;
			default :
				percent= 0.95;
				break;
		};
		BigDecimal price = new BigDecimal(String.valueOf(map.get("money")));
		price = price.multiply(new BigDecimal(String.valueOf(percent)));

		QueryWrapper<Bank> queryWrapper = new QueryWrapper<>();
		queryWrapper.eq("bank_account", map.get("bankAccount"));
		Bank businessBank = bankService.getOne(queryWrapper);
		Bank managerBank = bankService.getById(5L);
		businessBank.setMoney(businessBank.getMoney().add(price));
//		managerBank.setMoney(managerBank.getMoney().subtract(price));
		List<Bank> list = new ArrayList<>();
		list.add(businessBank);
//		list.add(managerBank);
		bankService.updateBatchById(list);
		return Result.success(null);
	}

	@PostMapping("/reMoney")
	public Result reMoney(@RequestBody Map<String, Object> map){
		QueryWrapper<Bank> queryWrapper = new QueryWrapper<>();
		queryWrapper.eq("bank_account", map.get("bankAccount"));
		Bank userBank = bankService.getOne(queryWrapper);
		Bank managerBank = bankService.getById(5L);
		BigDecimal price = new BigDecimal(String.valueOf(map.get("price")));
		userBank.setMoney(userBank.getMoney().add(price));
		managerBank.setMoney(managerBank.getMoney().subtract(price));
		List<Bank> list = new ArrayList<>();
		list.add(userBank);
		list.add(managerBank);
		bankService.updateBatchById(list);
		return Result.success(null);
	}

}


	@Autowired
	OrderService orderService;

	@Autowired
	GoodsService goodsService;

	@Autowired
	ReceiveService receiveService;

	@Autowired
	BusinessService businessService;

	@Autowired
	UserService userService;

	@PostMapping("/addOrder")
	public Result addOrder(@RequestBody List<OrderDTO> list){
		list.forEach(orderDTO -> {
			Order order = new Order();
			order.setUserId(orderDTO.getUserId());
			order.setGoodId(orderDTO.getGoodId());
			order.setNum(orderDTO.getNum());
			order.setPrice(orderDTO.getPrice());
			order.setActualPrice(orderDTO.getActualPrice());
			order.setAddressId(orderDTO.getAddressId());
			order.setCreated(LocalDateTime.now());
			order.setDelived(0);
			order.setGetGood(0);
			order.setReGood(0);
			order.setEvaluate(0);
			orderService.save(order);
			UpdateWrapper<Goods> updateWrapper = new UpdateWrapper<>();
			updateWrapper.eq("id", orderDTO.getGoodId());
			updateWrapper.set("piece", goodsService.getById(orderDTO.getGoodId()).getPiece() - orderDTO.getNum());
			goodsService.update(updateWrapper);
		});
		return Result.success("提交成功", null);
	}

			case 5 :
				percent= 0.95;
				break;
			case 4 :
				percent= 0.96;
				break;
			case 3 :
				percent= 0.97;
				break;
			case 2 :
				percent= 0.98;
				break;
			case 1 :
				percent= 0.99;
				break;
			default :
				percent= 0.95;
				break;
		};
		BigDecimal price = new BigDecimal(String.valueOf(map.get("money")));
		price = price.multiply(new BigDecimal(String.valueOf(percent)));

		QueryWrapper<Bank> queryWrapper = new QueryWrapper<>();
		queryWrapper.eq("bank_account", map.get("bankAccount"));
		Bank businessBank = bankService.getOne(queryWrapper);
		Bank managerBank = bankService.getById(5L);
		businessBank.setMoney(businessBank.getMoney().add(price));
//		managerBank.setMoney(managerBank.getMoney().subtract(price));
		List<Bank> list = new ArrayList<>();
		list.add(businessBank);
//		list.add(managerBank);
		bankService.updateBatchById(list);
		return Result.success(null);
	}

	@PostMapping("/reMoney")
	public Result reMoney(@RequestBody Map<String, Object> map){
		QueryWrapper<Bank> queryWrapper = new QueryWrapper<>();
		queryWrapper.eq("bank_account", map.get("bankAccount"));
		Bank userBank = bankService.getOne(queryWrapper);
		Bank managerBank = bankService.getById(5L);
		BigDecimal price = new BigDecimal(String.valueOf(map.get("price")));
		userBank.setMoney(userBank.getMoney().add(price));

@Component
public class JwtFilter extends AuthenticatingFilter {

    @Autowired
    JwtUtils jwtUtils;

    @Override
    protected AuthenticationToken createToken(ServletRequest servletRequest, ServletResponse servletResponse) throws Exception {

        HttpServletRequest request = (HttpServletRequest) servletRequest;
        String jwt = request.getHeader("Authorization");
        if(StringUtils.isEmpty(jwt)){
            return null;
        }
        return new JwtToken(jwt);
    }

    @Override
    protected boolean onAccessDenied(ServletRequest servletRequest, ServletResponse servletResponse) throws Exception {

        HttpServletRequest request = (HttpServletRequest) servletRequest;
        String jwt = request.getHeader("Authorization");
        if(StringUtils.isEmpty(jwt)){
            return true;
        } else {
            //效验jwt
            Claims claimByToken = jwtUtils.getClaimByToken(jwt);
            if(claimByToken == null || jwtUtils.isTokenExpired(claimByToken.getExpiration())){
                throw new ExpiredCredentialsException("token失效,请重新登录");
            }
            //执行登录
            return executeLogin(servletRequest, servletResponse);
        }
    }

    @Override
    protected boolean onLoginFailure(AuthenticationToken token, AuthenticationException e, ServletRequest request, ServletResponse response) {

        HttpServletResponse httpServletResponse = (HttpServletResponse) response;

        Throwable throwable = e.getCause() == null ? e : e.getCause();
        Result result = Result.fail(throwable.getMessage());
        String json = JSONUtil.toJsonStr(result);

        try {
            httpServletResponse.getWriter().print(json);
        } catch (IOException ioException) {
                    .eq("good_id", cart.getGoodId());
            cartService.remove(queryWrapper);
        });
        return Result.success(null);
    }

    @PostMapping("/changeNum")
    public Result changeNum(@RequestBody Map<String, Object> map){
        Long userId = ((Integer) map.get("userId")).longValue();
        Long[] goodIds = Convert.toLongArray(map.get("goodId"));
        Integer[] nums = Convert.toIntArray(map.get("nums"));
        System.out.println(userId);
        System.out.println(Arrays.toString(goodIds));
        System.out.println(Arrays.toString(nums));
        for (int i = 0; i < nums.length; i++) {
            UpdateWrapper<Cart> updateWrapper = new UpdateWrapper<>();
            updateWrapper.eq("user_id", userId).eq("good_id", goodIds[i]);
            updateWrapper.set("num", nums[i]);
            cartService.update(updateWrapper);
        }
        return Result.success(null);
    }
}

        );
    }

    @RequiresAuthentication
    @GetMapping("/logout")
    public Result logout(){
        SecurityUtils.getSubject().logout();
        return Result.success(null);
    }

    @PostMapping("/register")
    public Result register(@Validated @RequestBody User registerUser){
        User user = userService.getOne(new QueryWrapper<User>().eq("username", registerUser.getUsername()));
        if(user != null){
            return Result.fail("用户已存在!");
        } else {
            //registerUser.setPassword(SecureUtil.md5(registerUser.getPassword()));
            registerUser.setPassword((registerUser.getPassword()));
            registerUser.setCreated(LocalDateTime.now());
            registerUser.setLevel(0);
            registerUser.setPass(1);
            userService.save(registerUser);
            User result = userService.getOne(new QueryWrapper<User>().eq("username", registerUser.getUsername()));
            Integral integral = new Integral();
            integral.setUserId(result.getId());
            integralService.save(integral);
            return Result.success("提交成功", null);
        }
    }

    @RequiresAuthentication
    @PostMapping("/users")
    public Result getUsers(@RequestBody LoginDTO loginDTO){
        if(loginDTO.getLevel() == 1){
            return Result.success(userService.getAllUser());
        } else {
            return Result.fail("无权查看信息");
        }
    }

    @PostMapping("/userPass")
    public Result cpass(@RequestBody LoginDTO loginDTO){
        QueryWrapper<User> queryWrapper = new QueryWrapper<>();
        queryWrapper.eq("id", loginDTO.getId());
        User user = userService.getOne(queryWrapper);
        if(user.getPass() == 1){
            user.setPass(-1);
        } else {
            user.setPass(1);
        }
        boolean update = userService.update(user, queryWrapper);
        return Result.success(user);
    }
    public static void main(String[] args) {

@RestController
@CrossOrigin
public class BankController {

	@Autowired
	BankService bankService;

	@Autowired
	UserService userService;

	@Autowired
	IntegralService integralService;

	@PostMapping("/addBank")
	public Result addBank(@RequestBody Bank bank){
		bankService.save(bank);
		return Result.success(null);
	}

	@GetMapping("/getMoney/{userId}")
	public Result getMoney(@PathVariable Long userId){
		User user = userService.getById(userId);
		QueryWrapper<Bank> queryWrapper = new QueryWrapper<>();
		queryWrapper.eq("bank_account", user.getBankaccount());
		Bank bank = bankService.getOne(queryWrapper);
		return Result.success(bank);
	}

	@PostMapping("/changeMoney")
	public Result changeMoney(@RequestBody Map<String, Object> map){
		QueryWrapper<Bank> queryWrapper = new QueryWrapper<>();
		queryWrapper.eq("bank_account", map.get("bankAccount"));
		Bank userBank = bankService.getOne(queryWrapper);
//		Bank managerBank = bankService.getById(5L);
		userBank.setMoney(userBank.getMoney().subtract(new BigDecimal(String.valueOf(map.get("money")))));
//		managerBank.setMoney(managerBank.getMoney().add(new BigDecimal(String.valueOf(map.get("money")))));
		List<Bank> list = new ArrayList<>();
		list.add(userBank);
//		list.add(managerBank);
        }
    }

    /**
     * 管理员修改商品状态
     * @param changePassDTO
     * @return
     */
    @PostMapping("/goodsPass")
    public Result gPass(@RequestBody ChangePassDTO changePassDTO){
        Goods goods = goodsService.getById(changePassDTO.getId());
        if(goods.getPass() == 1){
            goods.setPass(-1);
            changePassDTO.setPass(-1);
        } else {
            goods.setPass(1);
            changePassDTO.setPass(1);
        }
        goodsService.saveOrUpdate(goods);
        return Result.success(changePassDTO);
    }

    @GetMapping("/good/{goodId}")
    public Result getGoodById(@PathVariable("goodId") Integer goodId){
        return Result.success(goodsService.getById(goodId));
    }

    @PostMapping("/changeGood")
    public Result changeGood(@RequestBody Goods goods){
        UpdateWrapper<Goods> updateWrapper = new UpdateWrapper<>();
        updateWrapper.eq("id", goods.getId());
        updateWrapper.set("piece", goods.getPiece()).set("pass", goods.getPass());
        goodsService.update(updateWrapper);
        return Result.success(null);
    }
}

		}
		evaluates.setCreated(LocalDateTime.now());
		evaluatesService.saveOrUpdate(evaluates);
		return Result.success(null);
	}

	@GetMapping("/getEvaluate/{goodId}")
	public Result getEvaluate(@PathVariable Long goodId){
		List<Evaluates> goods = evaluatesService.list(new QueryWrapper<Evaluates>().eq("good_id", goodId).orderByDesc("created"));
		Map<String, Object> map = new HashMap<>();
		List<Map<String, Object>> list = new ArrayList<>();
		int step = 0;
		if(goods.size() != 0){
			for (Evaluates good : goods) {
				Map<String, Object> eMap = new HashMap<>();
				step += good.getStarLevel();
				User user = userService.getById(good.getUserId());
				eMap.put("created", good.getCreated());
				eMap.put("username", user.getUsername());
				eMap.put("msg", good.getEvaluate());
				list.add(eMap);
			}
			BigDecimal rate = new BigDecimal(step);
			rate = rate.divide(new BigDecimal(goods.size()), 1, RoundingMode.HALF_UP);
			map.put("rate", rate);
			map.put("userMsg", list);
			return Result.success(map);
		}else{
			map.put("rate", step);
			map.put("userMsg", list);
			return Result.success(map);
		}
	}

	@GetMapping("/getShopDetail/{shopId}")
	public Result getShopDetail(@PathVariable Long shopId){
		List<Integer> goodEvaluate = evaluatesService.getGoodEvaluate(shopId);
		BigDecimal rate = new BigDecimal(0);
		if(goodEvaluate.size() != 0){
			int step = 0;
			for (Integer integer : goodEvaluate) {
				step += integer;
			}
			rate = new BigDecimal(step);
			rate = rate.divide(new BigDecimal(goodEvaluate.size()), 1, RoundingMode.HALF_UP);
		}
		String shopName = businessService.getShopName(shopId);
		Map<String, Object> map = new HashMap<>();
		map.put("rate", rate);
		map.put("shopName", shopName);
		return Result.success(map);
	}

@Component
public class JwtFilter extends AuthenticatingFilter {

    @Autowired
    JwtUtils jwtUtils;

    @Override
    protected AuthenticationToken createToken(ServletRequest servletRequest, ServletResponse servletResponse) throws Exception {

        HttpServletRequest request = (HttpServletRequest) servletRequest;
        String jwt = request.getHeader("Authorization");
        if(StringUtils.isEmpty(jwt)){
            return null;
        }
        return new JwtToken(jwt);
    }

    @Override
    protected boolean onAccessDenied(ServletRequest servletRequest, ServletResponse servletResponse) throws Exception {

        HttpServletRequest request = (HttpServletRequest) servletRequest;
        String jwt = request.getHeader("Authorization");
        if(StringUtils.isEmpty(jwt)){
            return true;
        } else {
            //效验jwt
            Claims claimByToken = jwtUtils.getClaimByToken(jwt);
            if(claimByToken == null || jwtUtils.isTokenExpired(claimByToken.getExpiration())){
                throw new ExpiredCredentialsException("token失效,请重新登录");
            }
            //执行登录
            return executeLogin(servletRequest, servletResponse);
        }
    }

    @Override
    protected boolean onLoginFailure(AuthenticationToken token, AuthenticationException e, ServletRequest request, ServletResponse response) {

        HttpServletResponse httpServletResponse = (HttpServletResponse) response;

        Throwable throwable = e.getCause() == null ? e : e.getCause();
        Result result = Result.fail(throwable.getMessage());

@RestController
@CrossOrigin
public class EvaluateController {

	@Autowired
	EvaluatesService evaluatesService;

	@Autowired
	UserService userService;

	@Autowired
	BusinessService businessService;

	@PostMapping("/addEvaluate")
	public Result addEvaluate(@RequestBody Evaluates evaluates){
		if(evaluates.getEvaluate().equals("")){
			evaluates.setEvaluate("买家暂无更多评论");
		}
		evaluates.setCreated(LocalDateTime.now());
		evaluatesService.saveOrUpdate(evaluates);
		return Result.success(null);
	}

	@GetMapping("/getEvaluate/{goodId}")
	public Result getEvaluate(@PathVariable Long goodId){
		List<Evaluates> goods = evaluatesService.list(new QueryWrapper<Evaluates>().eq("good_id", goodId).orderByDesc("created"));
		Map<String, Object> map = new HashMap<>();
		List<Map<String, Object>> list = new ArrayList<>();
				percent= 0.97;
				break;
			case 2 :
				percent= 0.98;
				break;
			case 1 :
				percent= 0.99;
				break;
			default :
				percent= 0.95;
				break;
		};
		BigDecimal price = new BigDecimal(String.valueOf(map.get("money")));
		price = price.multiply(new BigDecimal(String.valueOf(percent)));

		QueryWrapper<Bank> queryWrapper = new QueryWrapper<>();
		queryWrapper.eq("bank_account", map.get("bankAccount"));
		Bank businessBank = bankService.getOne(queryWrapper);
		Bank managerBank = bankService.getById(5L);
		businessBank.setMoney(businessBank.getMoney().add(price));
//		managerBank.setMoney(managerBank.getMoney().subtract(price));
		List<Bank> list = new ArrayList<>();
		list.add(businessBank);
//		list.add(managerBank);
		bankService.updateBatchById(list);
		return Result.success(null);
	}

	@PostMapping("/reMoney")
	public Result reMoney(@RequestBody Map<String, Object> map){
		QueryWrapper<Bank> queryWrapper = new QueryWrapper<>();
		queryWrapper.eq("bank_account", map.get("bankAccount"));
		Bank userBank = bankService.getOne(queryWrapper);
		Bank managerBank = bankService.getById(5L);
		BigDecimal price = new BigDecimal(String.valueOf(map.get("price")));
		userBank.setMoney(userBank.getMoney().add(price));
		managerBank.setMoney(managerBank.getMoney().subtract(price));
		List<Bank> list = new ArrayList<>();
		list.add(userBank);
		list.add(managerBank);
		bankService.updateBatchById(list);
		return Result.success(null);
	}

}


@Component
public class JwtFilter extends AuthenticatingFilter {

    @Autowired
    JwtUtils jwtUtils;

    @Override
    protected AuthenticationToken createToken(ServletRequest servletRequest, ServletResponse servletResponse) throws Exception {

        HttpServletRequest request = (HttpServletRequest) servletRequest;
        String jwt = request.getHeader("Authorization");
        if(StringUtils.isEmpty(jwt)){
            return null;
        }
        return new JwtToken(jwt);
    }

    @Override
    protected boolean onAccessDenied(ServletRequest servletRequest, ServletResponse servletResponse) throws Exception {

        HttpServletRequest request = (HttpServletRequest) servletRequest;
        String jwt = request.getHeader("Authorization");
        if(StringUtils.isEmpty(jwt)){
            return true;
        } else {
            //效验jwt
            Claims claimByToken = jwtUtils.getClaimByToken(jwt);
            if(claimByToken == null || jwtUtils.isTokenExpired(claimByToken.getExpiration())){
                throw new ExpiredCredentialsException("token失效,请重新登录");
            }
	public Result reGoodComplete(@RequestBody OrderDTO order){
		UpdateWrapper<Order> updateWrapper = new UpdateWrapper<>();
		updateWrapper.eq("id", order.getId());
		updateWrapper.set("re_good", 3);
		boolean update = orderService.update(updateWrapper);
		return Result.success(update);
	}
}

@RestController
@CrossOrigin
public class BusinessController {

    @Autowired
    UserService userService;

    @Autowired
    BusinessService businessService;

    @Autowired
    BankService bankService;

//    @PostMapping("/uploadUi")
    public Result br(@RequestParam("files") MultipartFile file) throws IOException {
        System.out.println("========================");
        System.out.println(file.toString());
        byte[] b = file.getBytes();
        String str = Base64.getEncoder().encodeToString(b);
	}

	@GetMapping("/getIntegral/{userId}")
	public Result getIntegral(@PathVariable Long userId){
		QueryWrapper<Integral> queryWrapper = new QueryWrapper<>();
		queryWrapper.eq("user_id", userId);
		Integral integral = integralService.getOne(queryWrapper);
		return Result.success(integral.getNumber());
	}

	@PostMapping("/useIntegral")
	public Result useIntegral(@RequestBody Integral integral){
		QueryWrapper<Integral> queryWrapper = new QueryWrapper<>();
		queryWrapper.eq("user_id", integral.getUserId());
		Integral getIntegral = integralService.getOne(queryWrapper);
		getIntegral.setNumber(getIntegral.getNumber() - integral.getNumber());
		integralService.updateById(getIntegral);
		return Result.success(null);
	}
}

@RestController
@CrossOrigin
public class GetVerifyController {

    @GetMapping("/verify")
    public void verify(String num, HttpServletResponse response) throws IOException {
        VerifyCode verifyCode = GetVerifyCode.getVerify(num);
        response.setDateHeader("expires", 0);
        response.setHeader("Pragma", "no-cache");
		updateWrapper.eq("id", order.getId());
		updateWrapper.set("re_good", 3);
		boolean update = orderService.update(updateWrapper);
		return Result.success(update);
	}
}

@RestController
@CrossOrigin
public class BusinessController {

    @Autowired
    UserService userService;

    @Autowired
    BusinessService businessService;

    @Autowired
    @RequiresAuthentication
    @GetMapping("/logout")
    public Result logout(){
        SecurityUtils.getSubject().logout();
        return Result.success(null);
    }

    @PostMapping("/register")
    public Result register(@Validated @RequestBody User registerUser){
        User user = userService.getOne(new QueryWrapper<User>().eq("username", registerUser.getUsername()));
        if(user != null){
            return Result.fail("用户已存在!");
        } else {
            //registerUser.setPassword(SecureUtil.md5(registerUser.getPassword()));
            registerUser.setPassword((registerUser.getPassword()));
            registerUser.setCreated(LocalDateTime.now());
            registerUser.setLevel(0);
            registerUser.setPass(1);
            userService.save(registerUser);
            User result = userService.getOne(new QueryWrapper<User>().eq("username", registerUser.getUsername()));
            Integral integral = new Integral();
            integral.setUserId(result.getId());
            integralService.save(integral);
            return Result.success("提交成功", null);
        }
    }

    @RequiresAuthentication
    @PostMapping("/users")
    public Result getUsers(@RequestBody LoginDTO loginDTO){
        if(loginDTO.getLevel() == 1){
            return Result.success(userService.getAllUser());
        } else {
            return Result.fail("无权查看信息");
        }
    }

    @PostMapping("/userPass")
    public Result cpass(@RequestBody LoginDTO loginDTO){
        QueryWrapper<User> queryWrapper = new QueryWrapper<>();
        queryWrapper.eq("id", loginDTO.getId());
        User user = userService.getOne(queryWrapper);
        if(user.getPass() == 1){
            user.setPass(-1);
        } else {
            user.setPass(1);
        }

请添加图片描述

请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值