基于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管理等等。
}
@PostMapping("/reCharge")
public Result reCharge(@RequestBody Map<String, Object> map){
UpdateWrapper<Bank> updateWrapper = new UpdateWrapper<>();
updateWrapper.eq("bank_account", map.get("bankAccount"));
updateWrapper.set("money", map.get("money"));
bankService.update(updateWrapper);
return Result.success(null);
}
@PostMapping("/changeUserInfo")
public Result changeUserInfo(@RequestBody Map<String, Object> map){
UpdateWrapper<User> updateWrapper = new UpdateWrapper<>();
updateWrapper.eq("id", map.get("id"));
updateWrapper.set("telephone", map.get("telephone")).set("email", map.get("email"))
.set("city", map.get("city")).set("bankAccount", map.get("bankAccount"));
userService.update(updateWrapper);
UpdateWrapper<Bank> updateWrapper1 = new UpdateWrapper<>();
updateWrapper1.eq("id", map.get("bankId"));
updateWrapper1.set("bank_account", map.get("bankAccount"));
bankService.update(updateWrapper1);
return Result.success(null);
}
}
@RestController
bankService.update(updateWrapper);
return Result.success(null);
}
@PostMapping("/changeUserInfo")
public Result changeUserInfo(@RequestBody Map<String, Object> map){
UpdateWrapper<User> updateWrapper = new UpdateWrapper<>();
updateWrapper.eq("id", map.get("id"));
updateWrapper.set("telephone", map.get("telephone")).set("email", map.get("email"))
.set("city", map.get("city")).set("bankAccount", map.get("bankAccount"));
userService.update(updateWrapper);
UpdateWrapper<Bank> updateWrapper1 = new UpdateWrapper<>();
updateWrapper1.eq("id", map.get("bankId"));
updateWrapper1.set("bank_account", map.get("bankAccount"));
bankService.update(updateWrapper1);
return Result.success(null);
}
}
@RestController
@CrossOrigin
public class ShoppingController {
@Autowired
CartService cartService;
@Autowired
business.setPass(-1);
changePassDTO.setPass(-1);
} else {
business.setPass(1);
changePassDTO.setPass(1);
}
boolean update = businessService.saveOrUpdate(business);
return Result.success(changePassDTO);
}
}
@RestController
@CrossOrigin
public class AccountController {
@Autowired
JwtUtils jwtUtils;
@Autowired
UserService userService;
@Autowired
IntegralService integralService;
// @PostMapping("/save")
// public Result save(@Validated @RequestBody User user){
//
// return Result.success(user);
@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");
response.setHeader("Cache-Control", "no-cache");
response.setContentType("image/jpeg");
response.getOutputStream().write(verifyCode.getImgBytes());
response.getOutputStream().flush();
}
@GetMapping("/code")
public Result code(String num) throws IOException {
VerifyCode verifyCode = GetVerifyCode.getVerify(num);
return Result.success(verifyCode.getCode());
}
}
@Slf4j
@RestControllerAdvice
public class GlobExceptionHandler {
@ResponseStatus(HttpStatus.BAD_REQUEST)
@ExceptionHandler(value = MethodArgumentNotValidException.class)
public Result handler(MethodArgumentNotValidException e){
log.error("------实体校验异常-------");
return Result.fail(e.getFieldError().getDefaultMessage());
}
@ResponseStatus(HttpStatus.BAD_REQUEST)
@ExceptionHandler(value = ExpiredCredentialsException.class)
public Result handler(ExpiredCredentialsException e){
}
@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);
}
}
@RestController
@CrossOrigin
public class OrderController {
@Autowired
OrderService orderService;
@Autowired
GoodsService goodsService;
@Autowired
ReceiveService receiveService;
@Autowired
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) {
System.out.println(SecureUtil.md5("admin"));
}
}
@RestController
@CrossOrigin
public class BankController {
@Autowired
BankService bankService;
@Autowired
UserService userService;
@Autowired
IntegralService integralService;
@RestController
@CrossOrigin
public class UserInfoController {
@Autowired
EvaluatesService evaluatesService;
@Autowired
ReceiveService receiveService;
@Autowired
UserService userService;
@Autowired
BankService bankService;
@PostMapping("/address")
public Result addAddress(@RequestBody Receive receive){
receiveService.save(receive);
return Result.success(null);
}
@GetMapping("/address/{userId}")
public Result getAddress(@PathVariable Long userId){
List<Receive> addresses = receiveService.getAddressByUserId(userId);
return Result.success(addresses);
}
@PostMapping("/deleteAddress")
public Result deleteAddress(@RequestBody Map<String, Long> map){
receiveService.removeById(map.get("id"));
return Result.success(null);
}
@GetMapping("/getUserInfo/{userId}")
public Result getUserInfo(@PathVariable Long userId){
User user = userService.getById(userId);
QueryWrapper<Bank> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("bank_account", user.getBankaccount());
Bank bank = bankService.getOne(queryWrapper);
Map<String, Object> map = BeanUtil.beanToMap(user);
map.put("money", bank.getMoney());
map.put("bankId", bank.getId());
return Result.success(map);
}
/**
* 管理员查看所有商品
* @param loginDTO
* @return
*/
@RequiresAuthentication
@PostMapping("/goods")
public Result allGoods(@RequestBody LoginDTO loginDTO){
if(loginDTO.getLevel() == 1){
List<Goods> allGoods = goodsService.getAllGoods();
List<Map<String, Object>> goodsInfo = new ArrayList<>();
allGoods.forEach(goods -> {
Map<String, Object> map = BeanUtil.beanToMap(goods);
String shopName = businessService.getShopName(goods.getBelongId());
map.remove("belongId");
map.put("shopName", shopName);
map.put("created", goods.getCreated().toLocalDate());
map.put("picGoods", "data:image/jpeg;base64," + Base64.getEncoder().encodeToString(goods.getPicGoods()));
goodsInfo.add(map);
});
return Result.success(goodsInfo);
} else {
return Result.fail("无权查看信息!!!");
}
}
/**
* 管理员修改商品状态
* @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));
return Result.success(listMap);
}else{
return Result.success(myGoods);
}
}
/**
* 商家添加商品
* @param shopId
* @param goods
* @param goodsPic
* @return
* @throws IOException
*/
@PostMapping("/goods/{shopId}")
public Result addGoods(@PathVariable("shopId") Integer shopId, Goods goods, MultipartFile goodsPic) throws IOException {
goods.setBelongId(shopId.longValue());
goods.setPicGoods(goodsPic.getBytes());
goods.setCreated(LocalDateTime.now());
boolean result = goodsService.save(goods);
return Result.success(null);
}
/**
* 管理员查看所有商品
* @param loginDTO
* @return
*/
@RequiresAuthentication
@PostMapping("/goods")
public Result allGoods(@RequestBody LoginDTO loginDTO){
if(loginDTO.getLevel() == 1){
List<Goods> allGoods = goodsService.getAllGoods();
List<Map<String, Object>> goodsInfo = new ArrayList<>();
allGoods.forEach(goods -> {
Map<String, Object> map = BeanUtil.beanToMap(goods);
String shopName = businessService.getShopName(goods.getBelongId());
map.remove("belongId");
map.put("shopName", shopName);
map.put("created", goods.getCreated().toLocalDate());
map.put("picGoods", "data:image/jpeg;base64," + Base64.getEncoder().encodeToString(goods.getPicGoods()));
goodsInfo.add(map);
});
return Result.success(goodsInfo);
} else {
return Result.fail("无权查看信息!!!");
}
}
if(user.getPass() == 0){
return Result.fail("账户正在审核中!");
} else if(user.getPass() == -1){
return Result.fail("此账户已被锁定!");
}
} else {
return Result.fail("用户名或密码错误!");
}
String jwt = jwtUtils.generateToken(user.getId());
response.setHeader("Authorization", jwt);
response.setHeader("Access-control-Expose-Headers", "Authorization");
return Result.success(MapUtil.builder()
.put("id", user.getId())
.put("username", user.getUsername())
.put("sex", user.getSex())
.put("telephone", user.getTelephone())
.put("email", user.getEmail())
.put("city", user.getCity())
.put("bank", user.getBankaccount())
.put("level", user.getLevel())
.map()
);
}
@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()));
}
return false;
}
}
@RestController
@CrossOrigin
public class IntegralController {
@Autowired
IntegralService integralService;
@PostMapping("/addIntegral")
public Result addIntegral(@RequestBody Integral integral){
integralService.save(integral);
return Result.success(null);
}
@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);
* @param loginDTO
* @return
*/
@RequiresAuthentication
@PostMapping("/goods")
public Result allGoods(@RequestBody LoginDTO loginDTO){
if(loginDTO.getLevel() == 1){
List<Goods> allGoods = goodsService.getAllGoods();
List<Map<String, Object>> goodsInfo = new ArrayList<>();
allGoods.forEach(goods -> {
Map<String, Object> map = BeanUtil.beanToMap(goods);
String shopName = businessService.getShopName(goods.getBelongId());
map.remove("belongId");
map.put("shopName", shopName);
map.put("created", goods.getCreated().toLocalDate());
map.put("picGoods", "data:image/jpeg;base64," + Base64.getEncoder().encodeToString(goods.getPicGoods()));
goodsInfo.add(map);
});
return Result.success(goodsInfo);
} else {
return Result.fail("无权查看信息!!!");
}
}
/**
* 管理员修改商品状态
* @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);
}
String time = (String) myGoodsMap.get(0).get("created");
int size = 0;
int index = 0;
for (int i = 0; i < myGoodsMap.size(); i++) {
String created = (String) myGoodsMap.get(i).get("created");
if(created.equals(time)){
size++;
} else {
time = created;
List<Map<String, Object>> goods = myGoodsMap.subList(index, index + size);
list.add(goods);
index += size;
size = 1;
}
}
list.add(myGoodsMap.subList(index, index + size));
List<Map<String, Object>> listMap = new ArrayList<>();
list.forEach(val -> {
Map<String, Object> map = new HashMap<>();
map.put("created", val.get(0).get("created"));
map.put("goods", val);
listMap.add(map);
});
return Result.success(listMap);
}else{
return Result.success(myGoods);
}
}
/**
* 商家添加商品
* @param shopId
* @param goods
* @param goodsPic
* @return
* @throws IOException
*/
@PostMapping("/goods/{shopId}")
public Result addGoods(@PathVariable("shopId") Integer shopId, Goods goods, MultipartFile goodsPic) throws IOException {
goods.setBelongId(shopId.longValue());
goods.setPicGoods(goodsPic.getBytes());
goods.setCreated(LocalDateTime.now());
boolean result = goodsService.save(goods);
return Result.success(null);
}
@GetMapping("/goods")
public Result getProducts(@RequestParam(defaultValue = "1") Integer currentPage){
Page page = new Page(currentPage, 12);
IPage pageData = goodsService.page(page, new QueryWrapper<Goods>().eq("pass", 1).orderByDesc("created"));
return Result.success(pageData);
}
@GetMapping("/goodsByName")
public Result goodsByName(@RequestParam(defaultValue = "1") Integer currentPage, String search){
Page page = new Page(currentPage, 12);
IPage pageData = goodsService.page(page,
new QueryWrapper<Goods>().eq("pass", 1)
.like("goods_name", search)
.orderByDesc("created"));
return Result.success(pageData);
}
@GetMapping("/goodsByShop")
public Result goodsByShop(@RequestParam(defaultValue = "1") Integer currentPage, String search){
Business shop = businessService.getOne(new QueryWrapper<Business>().like("shop_name", search));
Long shopId;
if(shop != null){
shopId = shop.getId();
}else{
shopId = -1L;
}
Page page = new Page(currentPage, 12);
IPage pageData = goodsService.page(page,
new QueryWrapper<Goods>().eq("pass", 1)
.eq("belong_id", shopId)
.orderByDesc("created"));
return Result.success(pageData);
}
/**
* 商家查看自己店铺中的商品
* @param shopId
* @return
*/
@GetMapping("/goods/{shopId}")
public Result getMyProducts(@PathVariable("shopId") Integer shopId){
List<Goods> myGoods = goodsService.getMyGoods(shopId.longValue());
if(myGoods.size() != 0){
List<Map<String, Object>> myGoodsMap = new ArrayList<>();
myGoods.forEach(goods -> {
Map<String, Object> map = BeanUtil.beanToMap(goods);
map.put("created", goods.getCreated().toLocalDate().toString());
map.put("picGoods", "data:image/jpeg;base64,"+Base64.getEncoder().encodeToString(goods.getPicGoods()));
myGoodsMap.add(map);
});
List<List<Map<String, Object>>> list = new ArrayList<>();
String time = (String) myGoodsMap.get(0).get("created");
if(loginDTO.getLevel() == 1){
List<Business> allBusiness = businessService.getAllBusiness();
List<Map<String, Object>> shopInfo = new ArrayList<>();
allBusiness.forEach(business -> {
Map<String, Object> map = BeanUtil.beanToMap(business);
String userName = userService.getUserName(business.getUserId());
map.remove("userId");
map.put("username", userName);
map.put("created", LocalDateTimeUtil.parseDate(map.get("created").toString(), DateTimeFormatter.ISO_DATE_TIME));
map.put("picShop", "data:image/jpeg;base64," + Base64.getEncoder().encodeToString((byte[])map.get("picShop")));
map.put("picId", "data:image/jpeg;base64," + Base64.getEncoder().encodeToString((byte[])map.get("picId")));
shopInfo.add(map);
});
return Result.success(shopInfo);
} else {
return Result.fail("无权查看信息!");
}
}
@PostMapping("/businessPass")
public Result bPass(@RequestBody ChangePassDTO changePassDTO){
Business business = businessService.getById(changePassDTO.getId());
if(business.getPass() == 1){
business.setPass(-1);
changePassDTO.setPass(-1);
} else {
business.setPass(1);
changePassDTO.setPass(1);
}
boolean update = businessService.saveOrUpdate(business);
return Result.success(changePassDTO);
}
}
}
@RestController
@CrossOrigin
public class UserInfoController {
@Autowired
EvaluatesService evaluatesService;
@Autowired
ReceiveService receiveService;
@Autowired
UserService userService;
@Autowired
BankService bankService;
@PostMapping("/address")
public Result addAddress(@RequestBody Receive receive){
receiveService.save(receive);
return Result.success(null);
}
@GetMapping("/address/{userId}")
public Result getAddress(@PathVariable Long userId){
List<Receive> addresses = receiveService.getAddressByUserId(userId);
return Result.success(addresses);
}
@PostMapping("/deleteAddress")
public Result deleteAddress(@RequestBody Map<String, Long> map){
@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");
response.setHeader("Cache-Control", "no-cache");
response.setContentType("image/jpeg");
response.getOutputStream().write(verifyCode.getImgBytes());
response.getOutputStream().flush();
}
@GetMapping("/code")
public Result code(String num) throws IOException {
VerifyCode verifyCode = GetVerifyCode.getVerify(num);
return Result.success(verifyCode.getCode());
}
}
@Slf4j
@RestControllerAdvice
public class GlobExceptionHandler {
goods.setCreated(LocalDateTime.now());
boolean result = goodsService.save(goods);
return Result.success(null);
}
/**
* 管理员查看所有商品
* @param loginDTO
* @return
*/
@RequiresAuthentication
@PostMapping("/goods")
public Result allGoods(@RequestBody LoginDTO loginDTO){
if(loginDTO.getLevel() == 1){
List<Goods> allGoods = goodsService.getAllGoods();
List<Map<String, Object>> goodsInfo = new ArrayList<>();
allGoods.forEach(goods -> {
Map<String, Object> map = BeanUtil.beanToMap(goods);
String shopName = businessService.getShopName(goods.getBelongId());
map.remove("belongId");
map.put("shopName", shopName);
map.put("created", goods.getCreated().toLocalDate());
map.put("picGoods", "data:image/jpeg;base64," + Base64.getEncoder().encodeToString(goods.getPicGoods()));
goodsInfo.add(map);
});
return Result.success(goodsInfo);
} else {
return Result.fail("无权查看信息!!!");
}
}
/**
* 管理员修改商品状态
* @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}")