diff --git a/api/src/main/java/me/xiaoyan/point/api/controller/admin/GoodsAdminController.java b/api/src/main/java/me/xiaoyan/point/api/controller/admin/GoodsAdminController.java new file mode 100644 index 0000000..e718c1e --- /dev/null +++ b/api/src/main/java/me/xiaoyan/point/api/controller/admin/GoodsAdminController.java @@ -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)); + } +} diff --git a/api/src/main/java/me/xiaoyan/point/api/controller/admin/UserAdminController.java b/api/src/main/java/me/xiaoyan/point/api/controller/admin/UserAdminController.java new file mode 100644 index 0000000..f65ad40 --- /dev/null +++ b/api/src/main/java/me/xiaoyan/point/api/controller/admin/UserAdminController.java @@ -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 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"; + } + +} diff --git a/api/src/main/java/me/xiaoyan/point/api/pojo/vo/GoodsQueryParam.java b/api/src/main/java/me/xiaoyan/point/api/pojo/vo/GoodsQueryParam.java new file mode 100644 index 0000000..f29d530 --- /dev/null +++ b/api/src/main/java/me/xiaoyan/point/api/pojo/vo/GoodsQueryParam.java @@ -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; +} diff --git a/api/src/main/java/me/xiaoyan/point/api/pojo/vo/PageDataResult.java b/api/src/main/java/me/xiaoyan/point/api/pojo/vo/PageDataResult.java new file mode 100644 index 0000000..a6ba02f --- /dev/null +++ b/api/src/main/java/me/xiaoyan/point/api/pojo/vo/PageDataResult.java @@ -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 implements Serializable { + private List items; + private long total; + + public static PageDataResult convert(Page result) { + return PageDataResult.builder() + .items(result.getRecords()) + .total(result.getTotal()) + .build(); + } +} diff --git a/api/src/main/java/me/xiaoyan/point/api/pojo/vo/UserAdminInfo.java b/api/src/main/java/me/xiaoyan/point/api/pojo/vo/UserAdminInfo.java new file mode 100644 index 0000000..be71cff --- /dev/null +++ b/api/src/main/java/me/xiaoyan/point/api/pojo/vo/UserAdminInfo.java @@ -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); + } +} diff --git a/api/src/main/java/me/xiaoyan/point/api/service/GoodsService.java b/api/src/main/java/me/xiaoyan/point/api/service/GoodsService.java index ec61724..2d835a6 100644 --- a/api/src/main/java/me/xiaoyan/point/api/service/GoodsService.java +++ b/api/src/main/java/me/xiaoyan/point/api/service/GoodsService.java @@ -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 { Page queryByPage(int category, Page page); + Page queryByPage(GoodsQueryParam page); /** * 减库存 diff --git a/api/src/main/java/me/xiaoyan/point/api/service/impl/GoodsServiceImpl.java b/api/src/main/java/me/xiaoyan/point/api/service/impl/GoodsServiceImpl.java index 4e0fa91..c483016 100644 --- a/api/src/main/java/me/xiaoyan/point/api/service/impl/GoodsServiceImpl.java +++ b/api/src/main/java/me/xiaoyan/point/api/service/impl/GoodsServiceImpl.java @@ -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,9 +24,19 @@ public class GoodsServiceImpl extends ServiceImpl return this.getBaseMapper().queryByCategory(category, page); } + @Override + public Page 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; + return getBaseMapper().deductCount(id, count) == 1; } @Override