基于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);
}