Compare commits

...

5 Commits

Author SHA1 Message Date
bunny 2892a48608 分类管理模块功能开发 2024-01-06 00:07:46 +08:00
bunny e7d6f8bd2f 编辑员工信息 2024-01-05 23:56:39 +08:00
bunny b94e61e388 根据id查询员工信息 2024-01-05 23:33:15 +08:00
bunny 7a93b2c397 启用或禁用员工账号 2024-01-05 23:22:10 +08:00
bunny 30cd5c234e 修改代码格式 2024-01-05 22:37:26 +08:00
14 changed files with 583 additions and 12 deletions

View File

@ -57,13 +57,12 @@ public class WebMvcConfiguration extends WebMvcConfigurationSupport {
.version("2.0") .version("2.0")
.description("苍穹外卖项目接口文档") .description("苍穹外卖项目接口文档")
.build(); .build();
Docket docket = new Docket(DocumentationType.SWAGGER_2) return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo) .apiInfo(apiInfo)
.select() .select()
.apis(RequestHandlerSelectors.basePackage("com.sky.controller")) .apis(RequestHandlerSelectors.basePackage("com.sky.controller"))
.paths(PathSelectors.any()) .paths(PathSelectors.any())
.build(); .build();
return docket;
} }
/** /**

View File

@ -0,0 +1,103 @@
package com.sky.controller.admin;
import com.sky.dto.CategoryDTO;
import com.sky.dto.CategoryPageQueryDTO;
import com.sky.entity.Category;
import com.sky.result.PageResult;
import com.sky.result.Result;
import com.sky.service.CategoryService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* 分类管理
*/
@RestController
@RequestMapping("/admin/category")
@Api(tags = "分类相关接口")
@Slf4j
public class CategoryController {
@Autowired
private CategoryService categoryService;
/**
* 新增分类
* @param categoryDTO
* @return
*/
@PostMapping
@ApiOperation("新增分类")
public Result<String> save(@RequestBody CategoryDTO categoryDTO){
log.info("新增分类:{}", categoryDTO);
categoryService.save(categoryDTO);
return Result.success();
}
/**
* 分类分页查询
* @param categoryPageQueryDTO
* @return
*/
@GetMapping("/page")
@ApiOperation("分类分页查询")
public Result<PageResult> page(CategoryPageQueryDTO categoryPageQueryDTO){
log.info("分页查询:{}", categoryPageQueryDTO);
PageResult pageResult = categoryService.pageQuery(categoryPageQueryDTO);
return Result.success(pageResult);
}
/**
* 删除分类
* @param id
* @return
*/
@DeleteMapping
@ApiOperation("删除分类")
public Result<String> deleteById(Long id){
log.info("删除分类:{}", id);
categoryService.deleteById(id);
return Result.success();
}
/**
* 修改分类
* @param categoryDTO
* @return
*/
@PutMapping
@ApiOperation("修改分类")
public Result<String> update(@RequestBody CategoryDTO categoryDTO){
categoryService.update(categoryDTO);
return Result.success();
}
/**
* 启用禁用分类
* @param status
* @param id
* @return
*/
@PostMapping("/status/{status}")
@ApiOperation("启用禁用分类")
public Result<String> startOrStop(@PathVariable("status") Integer status, Long id){
categoryService.startOrStop(status,id);
return Result.success();
}
/**
* 根据类型查询分类
* @param type
* @return
*/
@GetMapping("/list")
@ApiOperation("根据类型查询分类")
public Result<List<Category>> list(Integer type){
List<Category> list = categoryService.list(type);
return Result.success(list);
}
}

View File

@ -1,8 +1,6 @@
package com.sky.controller.admin; package com.sky.controller.admin;
import com.sky.constant.JwtClaimsConstant; import com.sky.constant.JwtClaimsConstant;
import com.sky.constant.PasswordConstant;
import com.sky.constant.StatusConstant;
import com.sky.dto.EmployeeDTO; import com.sky.dto.EmployeeDTO;
import com.sky.dto.EmployeeLoginDTO; import com.sky.dto.EmployeeLoginDTO;
import com.sky.dto.EmployeePageQueryDTO; import com.sky.dto.EmployeePageQueryDTO;
@ -15,15 +13,11 @@ import com.sky.utils.JwtUtil;
import com.sky.vo.EmployeeLoginVO; import com.sky.vo.EmployeeLoginVO;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.DigestUtils;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.time.LocalDateTime;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
@ -44,8 +38,8 @@ public class EmployeeController {
/** /**
* 登录 * 登录
* *
* @param employeeLoginDTO * @param employeeLoginDTO EmployeeLoginDTO
* @return * @return Result<EmployeeLoginVO>
*/ */
@Operation(summary = "员工登录接口") @Operation(summary = "员工登录接口")
@PostMapping("/login") @PostMapping("/login")
@ -109,4 +103,40 @@ public class EmployeeController {
PageResult pageResult = employeeService.pageQuery(employeePageQueryDTO); PageResult pageResult = employeeService.pageQuery(employeePageQueryDTO);
return Result.success(pageResult); return Result.success(pageResult);
} }
/**
* 启用或禁用员工账号
*
* @param status Integer
* @param id Long
* @return Result
*/
@Operation(summary = "启用或禁用员工账号")
@PostMapping("/status/{status}")
public Result<String> startOrStop(@PathVariable Integer status, Long id) {
log.info("启用或禁用员工账号:{}{}", status, id);
employeeService.startOrStop(status, id);
return Result.success();
}
/**
* 根据id查询员工信息
*
* @param id Integer
* @return Result<Employee>
*/
@Operation(summary = "根据id查询员工信息")
@GetMapping("/{id}")
public Result<Employee> getById(@PathVariable Integer id) {
Employee employee = employeeService.getById(id);
return Result.success(employee);
}
@Operation(summary = "编辑员工信息")
@PutMapping()
public Result update(@RequestBody EmployeeDTO employeeDTO) {
log.info("编辑员工信息:{}", employeeDTO);
employeeService.update(employeeDTO);
return Result.success();
}
} }

View File

@ -0,0 +1,50 @@
package com.sky.mapper;
import com.github.pagehelper.Page;
import com.sky.enumeration.OperationType;
import com.sky.dto.CategoryPageQueryDTO;
import com.sky.entity.Category;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
@Mapper
public interface CategoryMapper {
/**
* 插入数据
* @param category
*/
@Insert("insert into category(type, name, sort, status, create_time, update_time, create_user, update_user)" +
" VALUES" +
" (#{type}, #{name}, #{sort}, #{status}, #{createTime}, #{updateTime}, #{createUser}, #{updateUser})")
void insert(Category category);
/**
* 分页查询
* @param categoryPageQueryDTO
* @return
*/
Page<Category> pageQuery(CategoryPageQueryDTO categoryPageQueryDTO);
/**
* 根据id删除分类
* @param id
*/
@Delete("delete from category where id = #{id}")
void deleteById(Long id);
/**
* 根据id修改分类
* @param category
*/
void update(Category category);
/**
* 根据类型查询分类
* @param type
* @return
*/
List<Category> list(Integer type);
}

View File

@ -0,0 +1,17 @@
package com.sky.mapper;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
@Mapper
public interface DishMapper {
/**
* 根据分类id查询菜品数量
* @param categoryId Long
* @return Integer
*/
@Select("select count(id) from dish where category_id = #{categoryId}")
Integer countByCategoryId(Long categoryId);
}

View File

@ -12,6 +12,7 @@ public interface EmployeeMapper {
/** /**
* 根据用户名查询员工 * 根据用户名查询员工
*
* @param username * @param username
* @return * @return
*/ */
@ -20,14 +21,29 @@ public interface EmployeeMapper {
/** /**
* 插入员工数据 * 插入员工数据
*
* @param employee 员工 * @param employee 员工
*/ */
void insert(Employee employee); void insert(Employee employee);
/** /**
* 员工分页查询 * 员工分页查询
*
* @param employeePageQueryDTO EmployeePageQueryDTO * @param employeePageQueryDTO EmployeePageQueryDTO
* @return Page<Employee> * @return Page<Employee>
*/ */
Page<Employee> pageQuery(EmployeePageQueryDTO employeePageQueryDTO); Page<Employee> pageQuery(EmployeePageQueryDTO employeePageQueryDTO);
/**
* 启用或禁用员工账号
*
* @param employee Employee
*/
void update(Employee employee);
/**
* 根据id查询员工信息
* @param id Integer
*/
Employee getById(Integer id);
} }

View File

@ -0,0 +1,17 @@
package com.sky.mapper;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
@Mapper
public interface SetmealMapper {
/**
* 根据分类id查询套餐的数量
* @param id
* @return
*/
@Select("select count(id) from setmeal where category_id = #{categoryId}")
Integer countByCategoryId(Long id);
}

View File

@ -0,0 +1,49 @@
package com.sky.service;
import com.sky.dto.CategoryDTO;
import com.sky.dto.CategoryPageQueryDTO;
import com.sky.entity.Category;
import com.sky.result.PageResult;
import java.util.List;
public interface CategoryService {
/**
* 新增分类
* @param categoryDTO
*/
void save(CategoryDTO categoryDTO);
/**
* 分页查询
* @param categoryPageQueryDTO
* @return
*/
PageResult pageQuery(CategoryPageQueryDTO categoryPageQueryDTO);
/**
* 根据id删除分类
* @param id
*/
void deleteById(Long id);
/**
* 修改分类
* @param categoryDTO
*/
void update(CategoryDTO categoryDTO);
/**
* 启用禁用分类
* @param status
* @param id
*/
void startOrStop(Integer status, Long id);
/**
* 根据类型查询分类
* @param type
* @return
*/
List<Category> list(Integer type);
}

View File

@ -23,8 +23,28 @@ public interface EmployeeService {
/** /**
* 员工分页查询 * 员工分页查询
* @param employeeLoginDTO EmployeeService * @param employeePageQueryDTO EmployeePageQueryDTO
* @return PageResult * @return PageResult
*/ */
PageResult pageQuery(EmployeePageQueryDTO employeePageQueryDTO); PageResult pageQuery(EmployeePageQueryDTO employeePageQueryDTO);
/**
* 启用或禁用员工账号
* @param status Integer
* @param id Long
*/
void startOrStop(Integer status, Long id);
/**
* 根据id查询员工信息
* @param id Integer
* @return Employee
*/
Employee getById(Integer id);
/**
* 编辑员工信息
* @param employeeDTO EmployeeDTO
*/
void update(EmployeeDTO employeeDTO);
} }

View File

@ -0,0 +1,132 @@
package com.sky.service.impl;
import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import com.sky.constant.MessageConstant;
import com.sky.constant.StatusConstant;
import com.sky.context.BaseContext;
import com.sky.dto.CategoryDTO;
import com.sky.dto.CategoryPageQueryDTO;
import com.sky.entity.Category;
import com.sky.exception.DeletionNotAllowedException;
import com.sky.mapper.CategoryMapper;
import com.sky.mapper.DishMapper;
import com.sky.mapper.SetmealMapper;
import com.sky.result.PageResult;
import com.sky.service.CategoryService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.time.LocalDateTime;
import java.util.List;
/**
* 分类业务层
*/
@Service
@Slf4j
public class CategoryServiceImpl implements CategoryService {
@Autowired
private CategoryMapper categoryMapper;
@Autowired
private DishMapper dishMapper;
@Autowired
private SetmealMapper setmealMapper;
/**
* 新增分类
* @param categoryDTO
*/
public void save(CategoryDTO categoryDTO) {
Category category = new Category();
//属性拷贝
BeanUtils.copyProperties(categoryDTO, category);
//分类状态默认为禁用状态0
category.setStatus(StatusConstant.DISABLE);
//设置创建时间修改时间创建人修改人
category.setCreateTime(LocalDateTime.now());
category.setUpdateTime(LocalDateTime.now());
category.setCreateUser(BaseContext.getCurrentId());
category.setUpdateUser(BaseContext.getCurrentId());
categoryMapper.insert(category);
}
/**
* 分页查询
* @param categoryPageQueryDTO
* @return
*/
public PageResult pageQuery(CategoryPageQueryDTO categoryPageQueryDTO) {
PageHelper.startPage(categoryPageQueryDTO.getPage(),categoryPageQueryDTO.getPageSize());
//下一条sql进行分页自动加入limit关键字分页
Page<Category> page = categoryMapper.pageQuery(categoryPageQueryDTO);
return new PageResult(page.getTotal(), page.getResult());
}
/**
* 根据id删除分类
* @param id
*/
public void deleteById(Long id) {
//查询当前分类是否关联了菜品如果关联了就抛出业务异常
Integer count = dishMapper.countByCategoryId(id);
if(count > 0){
//当前分类下有菜品不能删除
throw new DeletionNotAllowedException(MessageConstant.CATEGORY_BE_RELATED_BY_DISH);
}
//查询当前分类是否关联了套餐如果关联了就抛出业务异常
count = setmealMapper.countByCategoryId(id);
if(count > 0){
//当前分类下有菜品不能删除
throw new DeletionNotAllowedException(MessageConstant.CATEGORY_BE_RELATED_BY_SETMEAL);
}
//删除分类数据
categoryMapper.deleteById(id);
}
/**
* 修改分类
* @param categoryDTO
*/
public void update(CategoryDTO categoryDTO) {
Category category = new Category();
BeanUtils.copyProperties(categoryDTO,category);
//设置修改时间修改人
category.setUpdateTime(LocalDateTime.now());
category.setUpdateUser(BaseContext.getCurrentId());
categoryMapper.update(category);
}
/**
* 启用禁用分类
* @param status
* @param id
*/
public void startOrStop(Integer status, Long id) {
Category category = Category.builder()
.id(id)
.status(status)
.updateTime(LocalDateTime.now())
.updateUser(BaseContext.getCurrentId())
.build();
categoryMapper.update(category);
}
/**
* 根据类型查询分类
* @param type
* @return
*/
public List<Category> list(Integer type) {
return categoryMapper.list(type);
}
}

View File

@ -112,4 +112,48 @@ public class EmployeeServiceImpl implements EmployeeService {
return new PageResult(total, result); return new PageResult(total, result);
} }
/**
* 启用或禁用员工账号
* @param status Integer
* @param id Long
*/
@Override
public void startOrStop(Integer status, Long id) {
// 常见对象第一种方式
// Employee employee = new Employee();
// employee.setStatus(status);
// employee.setId(id);
// 创建对象第二种方式
Employee employee = Employee.builder().status(status).id(id).build();
employeeMapper.update(employee);
}
/**
* 根据id查询员工信息
* @param id Integer
* @return Employee
*/
@Override
public Employee getById(Integer id) {
Employee employee = employeeMapper.getById(id);
employee.setPassword("密码?你也想看?");
return employee;
}
/**
* 编辑员工信息
* @param employeeDTO EmployeeDTO
*/
@Override
public void update(EmployeeDTO employeeDTO) {
Employee employee = new Employee();
BeanUtils.copyProperties(employeeDTO, employee);
employee.setUpdateTime(LocalDateTime.now());
employee.setUpdateUser(BaseContext.getCurrentId());
employeeMapper.update(employee);
}
} }

View File

@ -34,6 +34,6 @@ sky:
# 设置jwt签名加密时使用的秘钥 # 设置jwt签名加密时使用的秘钥
admin-secret-key: itcast admin-secret-key: itcast
# 设置jwt过期时间 # 设置jwt过期时间
admin-ttl: 7200000 admin-ttl: 66666666666666
# 设置前端传递过来的令牌名称 # 设置前端传递过来的令牌名称
admin-token-name: token admin-token-name: token

View File

@ -0,0 +1,52 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.sky.mapper.CategoryMapper">
<select id="pageQuery" resultType="com.sky.entity.Category">
select * from category
<where>
<if test="name != null and name != ''">
and name like concat('%',#{name},'%')
</if>
<if test="type != null">
and type = #{type}
</if>
</where>
order by sort asc , create_time desc
</select>
<update id="update" parameterType="Category">
update category
<set>
<if test="type != null">
type = #{type},
</if>
<if test="name != null">
name = #{name},
</if>
<if test="sort != null">
sort = #{sort},
</if>
<if test="status != null">
status = #{status},
</if>
<if test="updateTime != null">
update_time = #{updateTime},
</if>
<if test="updateUser != null">
update_user = #{updateUser}
</if>
</set>
where id = #{id}
</update>
<select id="list" resultType="Category">
select * from category
where status = 1
<if test="type != null">
and type = #{type}
</if>
order by sort asc,create_time desc
</select>
</mapper>

View File

@ -11,6 +11,41 @@
#{updateTime}, #{createUser}, #{updateUser}); #{updateTime}, #{createUser}, #{updateUser});
</insert> </insert>
<!-- 启用或禁用员工账号 -->
<update id="update" parameterType="Employee">
update employee
<set>
<if test="name != null">
name = #{name},
</if>
<if test="username != null">
username = #{username},
</if>
<if test="password != null">
password = #{password},
</if>
<if test="phone != null">
phone = #{phone},
</if>
<if test="sex != null">
sex = #{sex},
</if>
<if test="idNumber != null">
id_number = #{idNumber},
</if>
<if test="updateTime != null">
update_time = #{updateTime},
</if>
<if test="updateUser != null">
update_user = #{updateUser},
</if>
<if test="status != null">
status =#{status},
</if>
</set>
where id=#{id}
</update>
<!-- 员工分页查询 --> <!-- 员工分页查询 -->
<select id="pageQuery" resultType="com.sky.entity.Employee"> <select id="pageQuery" resultType="com.sky.entity.Employee">
select * from employee select * from employee
@ -21,4 +56,11 @@
</where> </where>
order by create_time desc order by create_time desc
</select> </select>
<!-- 根据id查询员工信息 -->
<select id="getById" resultType="Employee">
select *
from employee
where id = #{id};
</select>
</mapper> </mapper>