feat 新增后台接口
This commit is contained in:
parent
2e2b5d4cdc
commit
11226f53ea
@ -0,0 +1,25 @@
|
||||
package me.xiaoyan.point.api.controller.admin;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import me.xiaoyan.point.api.pojo.vo.GoodsQueryParam;
|
||||
import me.xiaoyan.point.api.pojo.vo.PageDataResult;
|
||||
import me.xiaoyan.point.api.pojo.vo.PageParam;
|
||||
import me.xiaoyan.point.api.service.GoodsService;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
@RestController
|
||||
@RequestMapping("admin/goods")
|
||||
public class GoodsAdminController {
|
||||
@Resource
|
||||
private GoodsService goodsService;
|
||||
|
||||
@PostMapping("/list")
|
||||
public PageDataResult list(@RequestBody GoodsQueryParam param) {
|
||||
return PageDataResult.convert(goodsService.queryByPage(param));
|
||||
}
|
||||
}
|
@ -0,0 +1,60 @@
|
||||
package me.xiaoyan.point.api.controller.admin;
|
||||
|
||||
import cn.dev33.satoken.stp.StpUtil;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import me.xiaoyan.point.api.error.BizException;
|
||||
import me.xiaoyan.point.api.pojo.vo.UserAdminInfo;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import javax.annotation.PostConstruct;
|
||||
import java.util.HashMap;
|
||||
|
||||
@RestController
|
||||
@RequestMapping("admin/user")
|
||||
@Slf4j
|
||||
public class UserAdminController {
|
||||
private HashMap<String, UserAdminInfo> userStoreMap = new HashMap<>();
|
||||
|
||||
@PostConstruct
|
||||
public void initUserStore() {
|
||||
log.info("初始化用户数据");
|
||||
userStoreMap.put("admin", UserAdminInfo.create(1, "admin", "admin"));
|
||||
userStoreMap.put("test", UserAdminInfo.create(2, "test", "123123"));
|
||||
}
|
||||
|
||||
@PostMapping("login")
|
||||
public UserAdminInfo login(@Validated @RequestBody UserAdminInfo user) {
|
||||
// 判断是否存在账号
|
||||
if (!userStoreMap.containsKey(user.getAccount())) {
|
||||
throw BizException.create("账号不存在");
|
||||
}
|
||||
// 获取到用户数据
|
||||
UserAdminInfo admin = userStoreMap.get(user.getAccount());
|
||||
// 判断密码
|
||||
if (!admin.getPassword().equals(user.getPassword())) {
|
||||
throw BizException.create("密码不正确");
|
||||
}
|
||||
user.setId(admin.getId());
|
||||
user.setPassword("");
|
||||
StpUtil.login(user.getId(), "admin");
|
||||
user.setToken(StpUtil.getTokenInfo().getTokenValue());
|
||||
StpUtil.getSession().set("user", user);
|
||||
return user;
|
||||
}
|
||||
|
||||
@RequestMapping("info")
|
||||
public UserAdminInfo info() {
|
||||
return (UserAdminInfo) StpUtil.getSession().get("user");
|
||||
}
|
||||
|
||||
@RequestMapping("logout")
|
||||
public String logout() {
|
||||
StpUtil.logout();
|
||||
return "ok";
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,9 @@
|
||||
package me.xiaoyan.point.api.pojo.vo;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class GoodsQueryParam extends PageParam {
|
||||
private String title;
|
||||
private int category;
|
||||
}
|
@ -0,0 +1,26 @@
|
||||
package me.xiaoyan.point.api.pojo.vo;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@Builder
|
||||
public class PageDataResult<T> implements Serializable {
|
||||
private List<T> items;
|
||||
private long total;
|
||||
|
||||
public static PageDataResult convert(Page result) {
|
||||
return PageDataResult.builder()
|
||||
.items(result.getRecords())
|
||||
.total(result.getTotal())
|
||||
.build();
|
||||
}
|
||||
}
|
@ -0,0 +1,25 @@
|
||||
package me.xiaoyan.point.api.pojo.vo;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import javax.validation.constraints.NotEmpty;
|
||||
import java.io.Serializable;
|
||||
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@Builder
|
||||
public class UserAdminInfo implements Serializable {
|
||||
private int id;
|
||||
@NotEmpty(message = "账号不允许为空")
|
||||
private String account;
|
||||
@NotEmpty(message = "密码不允许为空")
|
||||
private String password;
|
||||
private String token;
|
||||
public static UserAdminInfo create(int id,String acc,String pwd){
|
||||
return new UserAdminInfo(id,acc,pwd,null);
|
||||
}
|
||||
}
|
@ -3,6 +3,7 @@ package me.xiaoyan.point.api.service;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import me.xiaoyan.point.api.pojo.Goods;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import me.xiaoyan.point.api.pojo.vo.GoodsQueryParam;
|
||||
import me.xiaoyan.point.api.pojo.vo.PageParam;
|
||||
|
||||
import java.util.List;
|
||||
@ -13,6 +14,7 @@ import java.util.List;
|
||||
public interface GoodsService extends IService<Goods> {
|
||||
|
||||
Page<Goods> queryByPage(int category, Page page);
|
||||
Page<Goods> queryByPage(GoodsQueryParam page);
|
||||
|
||||
/**
|
||||
* 减库存
|
||||
|
@ -1,11 +1,14 @@
|
||||
package me.xiaoyan.point.api.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import me.xiaoyan.point.api.pojo.Goods;
|
||||
import me.xiaoyan.point.api.pojo.vo.GoodsQueryParam;
|
||||
import me.xiaoyan.point.api.service.GoodsService;
|
||||
import me.xiaoyan.point.api.mapper.GoodsMapper;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.util.StringUtils;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@ -21,6 +24,16 @@ public class GoodsServiceImpl extends ServiceImpl<GoodsMapper, Goods>
|
||||
return this.getBaseMapper().queryByCategory(category, page);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Page<Goods> queryByPage(GoodsQueryParam param) {
|
||||
QueryWrapper q = new QueryWrapper();
|
||||
// 查询标题
|
||||
if (StringUtils.hasText(param.getTitle())) {
|
||||
q.eq("title", param.getTitle().trim());
|
||||
}
|
||||
return getBaseMapper().selectPage(param.getPage(), q);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean deductStock(int id, int count) {
|
||||
return getBaseMapper().deductCount(id, count) == 1;
|
||||
|
Loading…
x
Reference in New Issue
Block a user