新增球杆类型,品牌,系列,商品等功能CRUD

This commit is contained in:
杨旭 2025-04-13 21:52:02 +08:00
parent 3b85b8bd40
commit d32dbefd58
38 changed files with 1483 additions and 679 deletions

View File

@ -0,0 +1,10 @@
package com.tmerclub.cloud.common.validate;
/**
* 校验分组 添加
*
* @author : frank
* @create : 2025-04-13
*/
public interface AddGroup {
}

View File

@ -0,0 +1,10 @@
package com.tmerclub.cloud.common.validate;
/**
* 校验分组 修改
*
* @author : frank
* @create : 2025-04-13
*/
public interface EditGroup {
}

View File

@ -1,17 +1,97 @@
package com.tmerclub.cloud.cuerecycle.controller.admin; package com.tmerclub.cloud.cuerecycle.controller.admin;
import com.tmerclub.cloud.common.database.dto.PageDTO;
import com.tmerclub.cloud.common.database.vo.PageVO;
import com.tmerclub.cloud.common.response.ServerResponseEntity;
import com.tmerclub.cloud.common.validate.AddGroup;
import com.tmerclub.cloud.common.validate.EditGroup;
import com.tmerclub.cloud.cuerecycle.model.dto.CueBrandDTO;
import com.tmerclub.cloud.cuerecycle.model.vo.CueBrandVO;
import com.tmerclub.cloud.cuerecycle.service.CueBrandService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.web.bind.annotation.RequestMapping; import jakarta.annotation.Resource;
import org.springframework.web.bind.annotation.RestController; import jakarta.validation.Valid;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
/** /**
* 球杆品牌 * 球杆品牌
* *
* @author: frank * @author : frank
* @create: 2025-04-10 * @create : 2025-04-11
**/ */
@Tag(name = "后管-球杆品牌") @Tag(name = "后管-球杆品牌")
@RestController("adminCueBrandController") @RestController("adminCueBrandController")
@RequestMapping("/admin/cueBrand") @RequestMapping("/admin/cueBrand")
public class CueBrandController { public class CueBrandController {
@Resource
CueBrandService cueBrandService;
/**
* 分页查询
*
* @param pageDTO 分页参数
* @param cueBrandDTO 查询参数
* @return 分页数据
*/
@GetMapping("/page")
@Operation(summary = "查询球杆品牌分页列表", description = "查询球杆品牌分页列表")
public ServerResponseEntity<PageVO<CueBrandVO>> page(@Valid PageDTO pageDTO, CueBrandDTO cueBrandDTO) {
PageVO<CueBrandVO> cueBrandPage = cueBrandService.page(pageDTO, cueBrandDTO);
return ServerResponseEntity.success(cueBrandPage);
}
/**
* 根据主键id获取球杆品牌
*
* @param brandId 主键id
* @return CueBrandVO
*/
@GetMapping
@Operation(summary = "根据id获取球杆品牌", description = "根据id获取球杆品牌")
public ServerResponseEntity<CueBrandVO> getById(@RequestParam Long brandId) {
CueBrandVO cueBrand = cueBrandService.getById(brandId);
return ServerResponseEntity.success(cueBrand);
}
/**
* 新增球杆品牌
*
* @param cueBrandDTO CueBrandDTO
* @return ServerResponseEntity
*/
@PostMapping
@Operation(summary = "新增球杆品牌", description = "新增球杆品牌")
public ServerResponseEntity<Void> save(@Validated(AddGroup.class) @RequestBody CueBrandDTO cueBrandDTO) {
int insert = cueBrandService.save(cueBrandDTO);
return insert > 0 ? ServerResponseEntity.success() : ServerResponseEntity.showFailMsg("保存失败");
}
/**
* 修改球杆品牌
*
* @param cueBrandDTO CueBrandDTO
* @return ServerResponseEntity
*/
@PutMapping
@Operation(summary = "修改球杆品牌", description = "修改球杆品牌")
public ServerResponseEntity<Void> update(@Validated(EditGroup.class) @RequestBody CueBrandDTO cueBrandDTO) {
int update = cueBrandService.update(cueBrandDTO);
return update > 0 ? ServerResponseEntity.success() : ServerResponseEntity.showFailMsg("修改失败");
}
/**
* 删除球杆品牌
*
* @param brandId 主键id
* @return ServerResponseEntity
*/
@DeleteMapping
@Operation(summary = "删除球杆品牌", description = "删除球杆品牌")
public ServerResponseEntity<Void> delete(@RequestParam Long brandId) {
int delete = cueBrandService.delete(brandId);
return delete > 0 ? ServerResponseEntity.success() : ServerResponseEntity.showFailMsg("删除失败");
}
} }

View File

@ -1,17 +1,97 @@
package com.tmerclub.cloud.cuerecycle.controller.admin; package com.tmerclub.cloud.cuerecycle.controller.admin;
import com.tmerclub.cloud.common.database.vo.PageVO;
import com.tmerclub.cloud.common.response.ServerResponseEntity;
import com.tmerclub.cloud.common.validate.AddGroup;
import com.tmerclub.cloud.common.validate.EditGroup;
import com.tmerclub.cloud.cuerecycle.model.dto.CueProductDTO;
import com.tmerclub.cloud.cuerecycle.model.vo.CueProductVO;
import com.tmerclub.cloud.common.database.dto.PageDTO;
import com.tmerclub.cloud.cuerecycle.service.CueProductService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.web.bind.annotation.RequestMapping; import jakarta.annotation.Resource;
import org.springframework.web.bind.annotation.RestController; import jakarta.validation.Valid;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
/** /**
* 球杆商品 * 球杆商品
* *
* @author: frank * @author : frank
* @create: 2025-04-10 * @create : 2025-04-11
**/ */
@Tag(name = "后管-球杆商品") @Tag(name = "后管-球杆商品")
@RestController("adminCueProductController") @RestController("adminCueProductController")
@RequestMapping("/admin/cueProduct") @RequestMapping("/admin/cueProduct")
public class CueProductController { public class CueProductController {
@Resource
CueProductService cueProductService;
/**
* 分页查询
*
* @param pageDTO 分页参数
* @param cueProductDTO 查询参数
* @return 分页数据
*/
@GetMapping("/page")
@Operation(summary = "查询球杆商品分页列表", description = "查询球杆商品分页列表")
public ServerResponseEntity<PageVO<CueProductVO>> page(@Valid PageDTO pageDTO, CueProductDTO cueProductDTO) {
PageVO<CueProductVO> cueProductPage = cueProductService.page(pageDTO, cueProductDTO);
return ServerResponseEntity.success(cueProductPage);
}
/**
* 根据主键id获取球杆商品
*
* @param productId 主键id
* @return CueProductVO
*/
@GetMapping
@Operation(summary = "根据id获取球杆商品", description = "根据id获取球杆商品")
public ServerResponseEntity<CueProductVO> getById(@RequestParam Long productId) {
CueProductVO cueProduct = cueProductService.getById(productId);
return ServerResponseEntity.success(cueProduct);
}
/**
* 新增球杆商品
*
* @param cueProductDTO CueProductDTO
* @return ServerResponseEntity
*/
@PostMapping
@Operation(summary = "新增球杆商品", description = "新增球杆商品")
public ServerResponseEntity<Void> save(@Validated(AddGroup.class) @RequestBody CueProductDTO cueProductDTO) {
int insert = cueProductService.save(cueProductDTO);
return insert > 0 ? ServerResponseEntity.success() : ServerResponseEntity.showFailMsg("保存失败");
}
/**
* 修改球杆商品
*
* @param cueProductDTO CueProductDTO
* @return ServerResponseEntity
*/
@PutMapping
@Operation(summary = "修改球杆商品", description = "修改球杆商品")
public ServerResponseEntity<Void> update(@Validated(EditGroup.class) @RequestBody CueProductDTO cueProductDTO) {
int update = cueProductService.update(cueProductDTO);
return update > 0 ? ServerResponseEntity.success() : ServerResponseEntity.showFailMsg("修改失败");
}
/**
* 删除球杆商品
*
* @param productId 主键id
* @return ServerResponseEntity
*/
@DeleteMapping
@Operation(summary = "删除球杆商品", description = "删除球杆商品")
public ServerResponseEntity<Void> delete(@RequestParam Long productId) {
int delete = cueProductService.delete(productId);
return delete > 0 ? ServerResponseEntity.success() : ServerResponseEntity.showFailMsg("删除失败");
}
} }

View File

@ -1,17 +1,97 @@
package com.tmerclub.cloud.cuerecycle.controller.admin; package com.tmerclub.cloud.cuerecycle.controller.admin;
import com.tmerclub.cloud.common.database.dto.PageDTO;
import com.tmerclub.cloud.common.database.vo.PageVO;
import com.tmerclub.cloud.common.response.ServerResponseEntity;
import com.tmerclub.cloud.common.validate.AddGroup;
import com.tmerclub.cloud.common.validate.EditGroup;
import com.tmerclub.cloud.cuerecycle.model.dto.CueSeriesDTO;
import com.tmerclub.cloud.cuerecycle.model.vo.CueSeriesVO;
import com.tmerclub.cloud.cuerecycle.service.CueSeriesService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.web.bind.annotation.RequestMapping; import jakarta.annotation.Resource;
import org.springframework.web.bind.annotation.RestController; import jakarta.validation.Valid;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
/** /**
* 球杆系列 * 球杆系列
* *
* @author: frank * @author : frank
* @create: 2025-04-10 * @create : 2025-04-11
**/ */
@Tag(name = "后管-球杆系列") @Tag(name = "后管-球杆系列")
@RestController("adminCueSeriesController") @RestController("adminCueSeriesController")
@RequestMapping("/admin/cueSeries") @RequestMapping("/admin/cueSeries")
public class CueSeriesController { public class CueSeriesController {
@Resource
CueSeriesService cueSeriesService;
/**
* 分页查询
*
* @param pageDTO 分页参数
* @param cueSeriesDTO 查询参数
* @return 分页数据
*/
@GetMapping("/page")
@Operation(summary = "查询球杆系列分页列表", description = "查询球杆系列分页列表")
public ServerResponseEntity<PageVO<CueSeriesVO>> page(@Valid PageDTO pageDTO, CueSeriesDTO cueSeriesDTO) {
PageVO<CueSeriesVO> cueSeriesPage = cueSeriesService.page(pageDTO, cueSeriesDTO);
return ServerResponseEntity.success(cueSeriesPage);
}
/**
* 根据主键id获取球杆系列
*
* @param seriesId 主键id
* @return CueSeriesVO
*/
@GetMapping
@Operation(summary = "根据id获取球杆系列", description = "根据id获取球杆系列")
public ServerResponseEntity<CueSeriesVO> getById(@RequestParam Long seriesId) {
CueSeriesVO cueSeries = cueSeriesService.getById(seriesId);
return ServerResponseEntity.success(cueSeries);
}
/**
* 新增球杆系列
*
* @param cueSeriesDTO CueSeriesDTO
* @return ServerResponseEntity
*/
@PostMapping
@Operation(summary = "新增球杆系列", description = "新增球杆系列")
public ServerResponseEntity<Void> save(@Validated(AddGroup.class) @RequestBody CueSeriesDTO cueSeriesDTO) {
int insert = cueSeriesService.save(cueSeriesDTO);
return insert > 0 ? ServerResponseEntity.success() : ServerResponseEntity.showFailMsg("保存失败");
}
/**
* 修改球杆系列
*
* @param cueSeriesDTO CueSeriesDTO
* @return ServerResponseEntity
*/
@PutMapping
@Operation(summary = "修改球杆系列", description = "修改球杆系列")
public ServerResponseEntity<Void> update(@Validated(EditGroup.class) @RequestBody CueSeriesDTO cueSeriesDTO) {
int update = cueSeriesService.update(cueSeriesDTO);
return update > 0 ? ServerResponseEntity.success() : ServerResponseEntity.showFailMsg("修改失败");
}
/**
* 删除球杆系列
*
* @param seriesId 主键id
* @return ServerResponseEntity
*/
@DeleteMapping
@Operation(summary = "删除球杆系列", description = "删除球杆系列")
public ServerResponseEntity<Void> delete(@RequestParam Long seriesId) {
int delete = cueSeriesService.delete(seriesId);
return delete > 0 ? ServerResponseEntity.success() : ServerResponseEntity.showFailMsg("删除失败");
}
} }

View File

@ -1,23 +1,26 @@
package com.tmerclub.cloud.cuerecycle.controller.admin; package com.tmerclub.cloud.cuerecycle.controller.admin;
import com.tmerclub.cloud.common.database.dto.PageDTO;
import com.tmerclub.cloud.common.database.vo.PageVO;
import com.tmerclub.cloud.common.response.ServerResponseEntity; import com.tmerclub.cloud.common.response.ServerResponseEntity;
import com.tmerclub.cloud.common.validate.AddGroup;
import com.tmerclub.cloud.common.validate.EditGroup;
import com.tmerclub.cloud.cuerecycle.model.dto.CueTypeDTO; import com.tmerclub.cloud.cuerecycle.model.dto.CueTypeDTO;
import com.tmerclub.cloud.cuerecycle.model.vo.CueTypeVO;
import com.tmerclub.cloud.cuerecycle.service.CueTypeService; import com.tmerclub.cloud.cuerecycle.service.CueTypeService;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.annotation.Resource; import jakarta.annotation.Resource;
import jakarta.validation.Valid; import jakarta.validation.Valid;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/** /**
* 球杆类型 * 球杆类型
* *
* @author: frank * @author : frank
* @create: 2025-04-10 * @create : 2025-04-11 21:22:35
**/ */
@Tag(name = "后管-球杆类型") @Tag(name = "后管-球杆类型")
@RestController("adminCueTypeController") @RestController("adminCueTypeController")
@RequestMapping("/admin/cueType") @RequestMapping("/admin/cueType")
@ -25,13 +28,70 @@ public class CueTypeController {
@Resource @Resource
CueTypeService cueTypeService; CueTypeService cueTypeService;
@PostMapping /**
@Operation(summary = "保存球杆类型", description = "保存球杆类型") * 分页查询
public ServerResponseEntity<Void> save(@Valid @RequestBody CueTypeDTO couponDTO) { *
int insert = cueTypeService.insert(couponDTO); * @param pageDTO 分页参数
if (insert <= 0) { * @param cueTypeDTO 查询参数
return ServerResponseEntity.showFailMsg("保存球杆类型失败"); * @return 分页数据
*/
@GetMapping("/page")
@Operation(summary = "查询球杆类型分页列表", description = "查询球杆类型分页列表")
public ServerResponseEntity<PageVO<CueTypeVO>> page(@Valid PageDTO pageDTO, CueTypeDTO cueTypeDTO) {
PageVO<CueTypeVO> cueTypePage = cueTypeService.page(pageDTO, cueTypeDTO);
return ServerResponseEntity.success(cueTypePage);
} }
return ServerResponseEntity.success();
/**
* 根据主键id获取球杆类型
*
* @param typeId 主键id
* @return CueTypeVO
*/
@GetMapping
@Operation(summary = "根据id获取球杆类型", description = "根据id获取球杆类型")
public ServerResponseEntity<CueTypeVO> getById(@RequestParam Long typeId) {
CueTypeVO cueType = cueTypeService.getById(typeId);
return ServerResponseEntity.success(cueType);
}
/**
* 新增球杆类型
*
* @param cueTypeDTO CueTypeDTO
* @return ServerResponseEntity
*/
@PostMapping
@Operation(summary = "新增球杆类型", description = "新增球杆类型")
public ServerResponseEntity<Void> save(@Validated(AddGroup.class) @RequestBody CueTypeDTO cueTypeDTO) {
int insert = cueTypeService.save(cueTypeDTO);
return insert > 0 ? ServerResponseEntity.success() : ServerResponseEntity.showFailMsg("保存失败");
}
/**
* 修改球杆类型
*
* @param cueTypeDTO CueTypeDTO
* @return ServerResponseEntity
*/
@PutMapping
@Operation(summary = "修改球杆类型", description = "修改球杆类型")
public ServerResponseEntity<Void> update(@Validated(EditGroup.class) @RequestBody CueTypeDTO cueTypeDTO) {
int update = cueTypeService.update(cueTypeDTO);
return update > 0 ? ServerResponseEntity.success() : ServerResponseEntity.showFailMsg("修改失败");
}
/**
* 删除球杆类型
*
* @param typeId 主键id
* @return ServerResponseEntity
*/
@DeleteMapping
@Operation(summary = "删除球杆类型", description = "删除球杆类型")
public ServerResponseEntity<Void> delete(@RequestParam Long typeId) {
int delete = cueTypeService.delete(typeId);
return delete > 0 ? ServerResponseEntity.success() : ServerResponseEntity.showFailMsg("删除失败");
} }
} }

View File

@ -1,6 +1,15 @@
package com.tmerclub.cloud.cuerecycle.controller.app; package com.tmerclub.cloud.cuerecycle.controller.app;
import com.tmerclub.cloud.common.database.dto.PageDTO;
import com.tmerclub.cloud.common.database.vo.PageVO;
import com.tmerclub.cloud.common.response.ServerResponseEntity;
import com.tmerclub.cloud.cuerecycle.model.vo.CueBrandVO;
import com.tmerclub.cloud.cuerecycle.service.CueBrandService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.annotation.Resource;
import jakarta.validation.Valid;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
@ -14,4 +23,20 @@ import org.springframework.web.bind.annotation.RestController;
@RestController("appCueBrandController") @RestController("appCueBrandController")
@RequestMapping("/app/cueBrand") @RequestMapping("/app/cueBrand")
public class CueBrandController { public class CueBrandController {
@Resource
CueBrandService cueBrandService;
/**
* 分页查询启用球杆品牌列表
*
* @param pageDTO 分页参数
* @return 球杆品牌分页列表
*/
@GetMapping("/listEnabled")
@Operation(summary = "分页查询启用球杆品牌列表", description = "分页查询启用球杆品牌列表")
public ServerResponseEntity<PageVO<CueBrandVO>> listEnabled(@Valid PageDTO pageDTO) {
PageVO<CueBrandVO> cueBrandPage = cueBrandService.listEnabled(pageDTO);
return ServerResponseEntity.success(cueBrandPage);
}
} }

View File

@ -1,17 +0,0 @@
package com.tmerclub.cloud.cuerecycle.controller.app;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* 球杆商品
*
* @author: frank
* @create: 2025-04-10
**/
@Tag(name = "App-球杆商品")
@RestController("appCueProductController")
@RequestMapping("/app/cueProduct")
public class CueProductController {
}

View File

@ -1,6 +1,16 @@
package com.tmerclub.cloud.cuerecycle.controller.app; package com.tmerclub.cloud.cuerecycle.controller.app;
import com.tmerclub.cloud.common.database.dto.PageDTO;
import com.tmerclub.cloud.common.database.vo.PageVO;
import com.tmerclub.cloud.common.response.ServerResponseEntity;
import com.tmerclub.cloud.cuerecycle.model.dto.CueSeriesDTO;
import com.tmerclub.cloud.cuerecycle.model.vo.CueSeriesVO;
import com.tmerclub.cloud.cuerecycle.service.CueSeriesService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.annotation.Resource;
import jakarta.validation.Valid;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
@ -14,4 +24,21 @@ import org.springframework.web.bind.annotation.RestController;
@RestController("appCueSeriesController") @RestController("appCueSeriesController")
@RequestMapping("/app/cueSeries") @RequestMapping("/app/cueSeries")
public class CueSeriesController { public class CueSeriesController {
@Resource
CueSeriesService cueSeriesService;
/**
* 分页查询启用球杆系列列表
*
* @param pageDTO 分页参数
* @param cueSeriesDTO 查询参数
* @return 分页数据
*/
@GetMapping("/listByBrand")
@Operation(summary = "分页查询启用球杆系列列表", description = "分页查询启用球杆系列列表")
public ServerResponseEntity<PageVO<CueSeriesVO>> listByBrand(@Valid PageDTO pageDTO, CueSeriesDTO cueSeriesDTO) {
PageVO<CueSeriesVO> cueSeriesPage = cueSeriesService.listByBrand(pageDTO, cueSeriesDTO);
return ServerResponseEntity.success(cueSeriesPage);
}
} }

View File

@ -1,6 +1,15 @@
package com.tmerclub.cloud.cuerecycle.controller.app; package com.tmerclub.cloud.cuerecycle.controller.app;
import com.tmerclub.cloud.common.database.dto.PageDTO;
import com.tmerclub.cloud.common.database.vo.PageVO;
import com.tmerclub.cloud.common.response.ServerResponseEntity;
import com.tmerclub.cloud.cuerecycle.model.vo.CueTypeVO;
import com.tmerclub.cloud.cuerecycle.service.CueTypeService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.annotation.Resource;
import jakarta.validation.Valid;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
@ -14,4 +23,21 @@ import org.springframework.web.bind.annotation.RestController;
@RestController("appCueTypeController") @RestController("appCueTypeController")
@RequestMapping("/app/cueType") @RequestMapping("/app/cueType")
public class CueTypeController { public class CueTypeController {
@Resource
CueTypeService cueTypeService;
/**
* 分页查询启用球杆类型列表
*
* @param pageDTO 分页参数
* @return 分页数据
*/
@GetMapping("/listEnabled")
@Operation(summary = "分页查询启用球杆类型列表", description = "分页查询启用球杆类型列表")
public ServerResponseEntity<PageVO<CueTypeVO>> listEnabled(@Valid PageDTO pageDTO) {
PageVO<CueTypeVO> cueTypePage = cueTypeService.listEnabled(pageDTO);
return ServerResponseEntity.success(cueTypePage);
}
} }

View File

@ -2,6 +2,7 @@ package com.tmerclub.cloud.cuerecycle.mapper;
import com.tmerclub.cloud.cuerecycle.model.CueBrand; import com.tmerclub.cloud.cuerecycle.model.CueBrand;
import com.tmerclub.cloud.cuerecycle.model.dto.CueBrandDTO; import com.tmerclub.cloud.cuerecycle.model.dto.CueBrandDTO;
import com.tmerclub.cloud.cuerecycle.model.vo.CueBrandVO;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import java.util.List; import java.util.List;
@ -9,57 +10,40 @@ import java.util.List;
/** /**
* 球杆品牌Mapper接口 * 球杆品牌Mapper接口
* *
* @author: frank * @author : frank
* @create: 2025-04-10 * @create : 2025-04-11
**/ */
public interface CueBrandMapper { public interface CueBrandMapper {
/** /**
* 根据主键查询 * 查询球杆品牌列表
* *
* @param id 主键 * @param cueBrandDTO 查询参数
* @return 球杆品牌 * @return 球杆品牌列表数据
*/ */
CueBrand selectById(Long id); List<CueBrandVO> list(@Param("dto") CueBrandDTO cueBrandDTO);
/** /**
* 根据类型查询 * 获取球杆品牌详情
* *
* @param typeId 类型 * @param brandId 主键
* @return 球杆品牌 * @return 球杆品牌详情
*/ */
List<CueBrand> listByType(Long typeId); CueBrandVO getById(Long brandId);
/** /**
* 根据条件查询 * 新增球杆品牌
* *
* @param query 查询条件 * @param cueBrand 新增参数
* @return 球杆品牌 * @return 新增结果
*/ */
List<CueBrand> list(CueBrandDTO query); int save(CueBrand cueBrand);
/** /**
* 新增 * 修改球杆品牌
* *
* @param brand 球杆品牌 * @param cueBrand 修改参数
* @return 影响行数 * @return 修改结果
*/ */
int insert(CueBrand brand); int update(CueBrand cueBrand);
/**
* 修改
*
* @param brand 球杆品牌
* @return 影响行数
*/
int update(CueBrand brand);
/**
* 修改状态
*
* @param id 主键
* @param status 状态
* @return 影响行数
*/
int updateStatus(@Param("id") Long id, @Param("status") Integer status);
} }

View File

@ -1,7 +1,8 @@
package com.tmerclub.cloud.cuerecycle.mapper; package com.tmerclub.cloud.cuerecycle.mapper;
import com.tmerclub.cloud.cuerecycle.model.CueProduct;
import com.tmerclub.cloud.cuerecycle.model.dto.CueProductDTO; import com.tmerclub.cloud.cuerecycle.model.dto.CueProductDTO;
import com.tmerclub.cloud.cuerecycle.model.vo.CueProductVO;
import com.tmerclub.cloud.cuerecycle.model.CueProduct;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import java.util.List; import java.util.List;
@ -9,56 +10,40 @@ import java.util.List;
/** /**
* 球杆商品Mapper接口 * 球杆商品Mapper接口
* *
* @author: frank * @author : frank
* @create: 2025-04-10 * @create : 2025-04-11
**/
public interface CueProductMapper {
/**
* 根据主键id查询
*
* @param id 主键id
* @return 球杆商品
*/ */
CueProduct selectById(Long id); public interface CueProductMapper{
/** /**
* 根据系列id查询列表 * 查询球杆商品列表
* *
* @param seriesId 系列id * @param cueProductDTO 查询参数
* @return 球杆商品列表 * @return 球杆商品列表数据
*/ */
List<CueProduct> listBySeries(Long seriesId); List<CueProductVO> list(@Param("dto") CueProductDTO cueProductDTO);
/** /**
* 查询列表 * 获取球杆商品详情
* *
* @param query 查询条件 * @param id 主键
* @return 球杆商品列表 * @return 球杆商品详情
*/ */
List<CueProduct> list(CueProductDTO query); CueProductVO getById(Long id);
/** /**
* 新增 * 新增球杆商品
* *
* @param product 球杆商品 * @param cueProduct 新增参数
* @return 影响行数 * @return 新增结果
*/ */
int insert(CueProduct product); int save(CueProduct cueProduct);
/** /**
* 修改 * 修改球杆商品
* *
* @param product 球杆商品 * @param cueProduct 修改参数
* @return 影响行数 * @return 修改结果
*/ */
int update(CueProduct product); int update(CueProduct cueProduct);
/**
* 修改状态
*
* @param id 主键id
* @param status 状态
* @return 影响行数
*/
int updateStatus(@Param("id") Long id, @Param("status") Integer status);
} }

View File

@ -2,6 +2,7 @@ package com.tmerclub.cloud.cuerecycle.mapper;
import com.tmerclub.cloud.cuerecycle.model.CueSeries; import com.tmerclub.cloud.cuerecycle.model.CueSeries;
import com.tmerclub.cloud.cuerecycle.model.dto.CueSeriesDTO; import com.tmerclub.cloud.cuerecycle.model.dto.CueSeriesDTO;
import com.tmerclub.cloud.cuerecycle.model.vo.CueSeriesVO;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import java.util.List; import java.util.List;
@ -9,56 +10,40 @@ import java.util.List;
/** /**
* 球杆系列Mapper接口 * 球杆系列Mapper接口
* *
* @author: frank * @author : frank
* @create: 2025-04-10 * @create : 2025-04-13
**/ */
public interface CueSeriesMapper { public interface CueSeriesMapper {
/**
* 根据id查询球杆系列
*
* @param id 主键id
* @return 对象
*/
CueSeries selectById(Long id);
/** /**
* 根据品牌id查询球杆系列 * 查询球杆系列列表
* *
* @param brandId 品牌id * @param cueSeriesDTO 查询参数
* @return 对象集合 * @return 球杆系列列表数据
*/ */
List<CueSeries> listByBrand(Long brandId); List<CueSeriesVO> list(@Param("dto") CueSeriesDTO cueSeriesDTO);
/** /**
* 根据条件查询球杆系列 * 获取球杆系列详情
* *
* @param query 查询条件 * @param seriesId 主键
* @return 对象集合 * @return 球杆系列详情
*/ */
List<CueSeries> list(CueSeriesDTO query); CueSeriesVO getById(Long seriesId);
/** /**
* 新增球杆系列 * 新增球杆系列
* *
* @param series 球杆系列 * @param cueSeries 新增参数
* @return 影响行数 * @return 新增结果
*/ */
int insert(CueSeries series); int save(CueSeries cueSeries);
/** /**
* 更新球杆系列 * 修改球杆系列
* *
* @param series 球杆系列 * @param cueSeries 修改参数
* @return 影响行数 * @return 修改结果
*/ */
int update(CueSeries series); int update(CueSeries cueSeries);
/**
* 修改状态
*
* @param id 主键id
* @param status 状态
* @return 影响行数
*/
int updateStatus(@Param("id") Long id, @Param("status") Integer status);
} }

View File

@ -2,62 +2,48 @@ package com.tmerclub.cloud.cuerecycle.mapper;
import com.tmerclub.cloud.cuerecycle.model.CueType; import com.tmerclub.cloud.cuerecycle.model.CueType;
import com.tmerclub.cloud.cuerecycle.model.dto.CueTypeDTO; import com.tmerclub.cloud.cuerecycle.model.dto.CueTypeDTO;
import com.tmerclub.cloud.cuerecycle.model.vo.CueTypeVO;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import java.util.List; import java.util.List;
/** /**
* 球杆类型Mapper接口 * 球杆类型Mapper接口
* *
* @author: frank * @author : frank
* @create: 2025-04-10 * @create : 2025-04-11 21:22:35
**/ */
public interface CueTypeMapper { public interface CueTypeMapper {
/**
* 根据id查询
*
* @param id 主键id
* @return 对象
*/
CueType selectById(Long id);
/** /**
* 查询所有启用状态的数据 * 查询球杆类型表列表
* *
* @return 对象集合 * @param cueTypeDTO 查询参数
* @return 球杆类型表列表数据
*/ */
List<CueType> listEnabled(); List<CueTypeVO> list(@Param("dto") CueTypeDTO cueTypeDTO);
/** /**
* 根据条件查询 * 获取球杆类型表详情
* *
* @param query 查询条件 * @param typeId 主键
* @return 对象集合 * @return 球杆类型表详情
*/ */
List<CueType> list(CueTypeDTO query); CueTypeVO getById(Long typeId);
/** /**
* 新增 * 新增球杆类型表
* *
* @param cueType 对象 * @param cueType 新增参数
* @return 影响行数 * @return 新增结果
*/ */
int insert(CueType cueType); int save(CueType cueType);
/** /**
* 修改 * 修改球杆类型表
* *
* @param cueType 对象 * @param cueType 修改参数
* @return 影响行数 * @return 修改结果
*/ */
int update(CueType cueType); int update(CueType cueType);
/**
* 修改状态
*
* @param id 主键id
* @param status 状态
* @return 影响行数
*/
int updateStatus(@Param("id") Long id, @Param("status") Integer status);
} }

View File

@ -10,9 +10,9 @@ import java.io.Serializable;
/** /**
* 球杆品牌对象 * 球杆品牌对象
* *
* @author: frank * @author : frank
* @create: 2025-04-10 * @create : 2025-04-13
**/ */
@Data @Data
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
public class CueBrand extends BaseModel implements Serializable { public class CueBrand extends BaseModel implements Serializable {
@ -20,27 +20,27 @@ public class CueBrand extends BaseModel implements Serializable {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
/** /**
* 主键 * 品牌ID
*/ */
private Long id; private Long brandId;
/** /**
* 球杆类型id * 品牌名称
*/ */
private Long typeId; private String brandName;
/** /**
* 球杆品牌名称 * 品牌logo
*/ */
private String name; private String brandLogo;
/**
* 球杆品牌logo
*/
private String logo;
/** /**
* 排序 * 排序
*/ */
private Integer sort; private Integer brandSeq;
/** /**
* 状态 * 状态0-禁用1-启用
*/ */
private Integer status; private Integer brandStatus;
/**
* 删除状态 0-未删除 1-已删除
*/
private Integer deleted;
} }

View File

@ -6,14 +6,13 @@ import lombok.EqualsAndHashCode;
import java.io.Serial; import java.io.Serial;
import java.io.Serializable; import java.io.Serializable;
import java.math.BigDecimal;
/** /**
* 球杆商品对象 * 球杆商品对象
* *
* @author: frank * @author : frank
* @create: 2025-04-10 * @create : 2025-04-13
**/ */
@Data @Data
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
public class CueProduct extends BaseModel implements Serializable { public class CueProduct extends BaseModel implements Serializable {
@ -21,35 +20,47 @@ public class CueProduct extends BaseModel implements Serializable {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
/** /**
* 主键 * 商品ID
*/ */
private Long id; private Long productId;
/** /**
* 系列id * 关联的品牌ID
*/
private Long brandId;
/**
* 关联的系列ID
*/ */
private Long seriesId; private Long seriesId;
/**
* 关联的球杆类型ID
*/
private Long typeId;
/** /**
* 商品名称 * 商品名称
*/ */
private String name; private String productName;
/** /**
* 商品描述 * 商品描述
*/ */
private String description; private String productDescription;
/** /**
* 商品图片 * 商品图片
*/ */
private String images; private String productImages;
/** /**
* 商品价格 * 价格
*/ */
private BigDecimal price; private Long productPrice;
/** /**
* 排序 * 排序
*/ */
private Integer sort; private Integer productSeq;
/** /**
* 状态 * 状态0-禁用1-启用
*/ */
private Integer status; private Integer productStatus;
/**
* 删除状态 0-未删除 1-已删除
*/
private Integer deleted;
} }

View File

@ -10,9 +10,9 @@ import java.io.Serializable;
/** /**
* 球杆系列对象 * 球杆系列对象
* *
* @author: frank * @author : frank
* @create: 2025-04-10 * @create : 2025-04-13
**/ */
@Data @Data
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
public class CueSeries extends BaseModel implements Serializable { public class CueSeries extends BaseModel implements Serializable {
@ -20,23 +20,27 @@ public class CueSeries extends BaseModel implements Serializable {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
/** /**
* 主键 * 系列ID
*/ */
private Long id; private Long seriesId;
/** /**
* 品牌id * 关联的品牌ID
*/ */
private Long brandId; private Long brandId;
/** /**
* 系列名称 * 系列名称
*/ */
private String name; private String seriesName;
/** /**
* 排序 * 排序
*/ */
private Integer sort; private Integer seriesSeq;
/** /**
* 状态 * 状态0-禁用1-启用
*/ */
private Integer status; private Integer seriesStatus;
/**
* 删除状态 0-未删除 1-已删除
*/
private Integer deleted;
} }

View File

@ -10,9 +10,9 @@ import java.io.Serializable;
/** /**
* 球杆类型对象 * 球杆类型对象
* *
* @author: frank * @author : frank
* @create: 2025-04-10 * @create : 2025-04-13
**/ */
@Data @Data
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
public class CueType extends BaseModel implements Serializable { public class CueType extends BaseModel implements Serializable {
@ -20,23 +20,27 @@ public class CueType extends BaseModel implements Serializable {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
/** /**
* 球杆类型id * 类型ID
*/ */
private Long id; private Long typeId;
/** /**
* 球杆类型名称 * 类型名称
*/ */
private String name; private String typeName;
/** /**
* 球杆类型图片 * 类型图片
*/ */
private String image; private String typeImage;
/** /**
* 排序 * 排序
*/ */
private Integer sort; private Integer typeSeq;
/** /**
* 状态 * 状态0-禁用1-启用
*/ */
private Integer status; private Integer typeStatus;
/**
* 删除状态 0-未删除 1-已删除
*/
private Integer deleted;
} }

View File

@ -1,43 +1,50 @@
package com.tmerclub.cloud.cuerecycle.model.dto; package com.tmerclub.cloud.cuerecycle.model.dto;
import com.tmerclub.cloud.common.validate.AddGroup;
import com.tmerclub.cloud.common.validate.EditGroup;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.Data; import lombok.Data;
import java.io.Serial; import java.io.Serial;
import java.io.Serializable; import java.io.Serializable;
/** /**
* 球杆品牌业务对象 * 球杆品牌对象
* *
* @author: frank * @author : frank
* @create: 2025-04-10 * @create : 2025-04-13
**/ */
@Data @Data
public class CueBrandDTO implements Serializable { public class CueBrandDTO implements Serializable {
@Serial @Serial
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
/** /**
* 主键 * 品牌ID
*/ */
private Long id; @NotNull(message = "品牌ID不能为空", groups = {EditGroup.class})
private Long brandId;
/** /**
* 球杆类型id * 品牌名称
*/ */
private Long typeId; @NotBlank(message = "品牌名称不能为空", groups = {AddGroup.class})
private String brandName;
/** /**
* 球杆品牌名称 * 品牌logo
*/ */
private String name; @NotBlank(message = "品牌Logo不能为空", groups = {AddGroup.class})
/** private String brandLogo;
* 球杆品牌logo
*/
private String logo;
/** /**
* 排序 * 排序
*/ */
private Integer sort; private Integer brandSeq;
/** /**
* 状态 * 状态0-禁用1-启用
*/ */
private Integer status; private Integer brandStatus;
/**
* 删除状态 0-未删除 1-已删除
*/
private Integer deleted;
} }

View File

@ -1,52 +1,70 @@
package com.tmerclub.cloud.cuerecycle.model.dto; package com.tmerclub.cloud.cuerecycle.model.dto;
import com.tmerclub.cloud.common.validate.AddGroup;
import com.tmerclub.cloud.common.validate.EditGroup;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.Data; import lombok.Data;
import java.io.Serial; import java.io.Serial;
import java.io.Serializable; import java.io.Serializable;
import java.math.BigDecimal;
/** /**
* 球杆商品业务对象 * 球杆商品对象
* *
* @author: frank * @author : frank
* @create: 2025-04-10 * @create : 2025-04-13
**/ */
@Data @Data
public class CueProductDTO implements Serializable { public class CueProductDTO implements Serializable {
@Serial @Serial
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
/** /**
* 主键 * 商品ID
*/ */
private Long id; @NotNull(message = "商品ID不能为空", groups = {EditGroup.class})
private Long productId;
/** /**
* 系列id * 关联的品牌ID
*/ */
@NotNull(message = "未关联球杆品牌", groups = {AddGroup.class})
private Long brandId;
/**
* 关联的系列ID
*/
@NotNull(message = "未关联球杆系列", groups = {AddGroup.class})
private Long seriesId; private Long seriesId;
/**
* 关联的球杆类型ID
*/
@NotNull(message = "未关联球杆类型", groups = {AddGroup.class})
private Long typeId;
/** /**
* 商品名称 * 商品名称
*/ */
private String name; @NotBlank(message = "商品名称不能为空", groups = {AddGroup.class})
private String productName;
/** /**
* 商品描述 * 商品描述
*/ */
private String description; private String productDescription;
/** /**
* 商品图片 * 商品图片
*/ */
private String images; @NotBlank(message = "商品图片不能为空", groups = {AddGroup.class})
private String productImages;
/** /**
* 商品价格 * 价格
*/ */
private BigDecimal price; @NotNull(message = "商品价格不能为空", groups = {AddGroup.class})
private Long productPrice;
/** /**
* 排序 * 排序
*/ */
private Integer sort; private Integer productSeq;
/** /**
* 状态 * 状态0-禁用1-启用
*/ */
private Integer status; private Integer productStatus;
} }

View File

@ -1,39 +1,50 @@
package com.tmerclub.cloud.cuerecycle.model.dto; package com.tmerclub.cloud.cuerecycle.model.dto;
import com.tmerclub.cloud.common.validate.AddGroup;
import com.tmerclub.cloud.common.validate.EditGroup;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.Data; import lombok.Data;
import java.io.Serial; import java.io.Serial;
import java.io.Serializable; import java.io.Serializable;
/** /**
* 球杆系列业务对象 * 球杆系列对象
* *
* @author: frank * @author : frank
* @create: 2025-04-10 * @create : 2025-04-13
**/ */
@Data @Data
public class CueSeriesDTO implements Serializable { public class CueSeriesDTO implements Serializable {
@Serial @Serial
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
/** /**
* 主键 * 系列ID
*/ */
private Long id; @NotNull(message = "系列ID不能为空", groups = {EditGroup.class})
private Long seriesId;
/** /**
* 品牌id * 关联的品牌ID
*/ */
@NotNull(message = "未关联球杆品牌", groups = {AddGroup.class})
private Long brandId; private Long brandId;
/** /**
* 系列名称 * 系列名称
*/ */
private String name; @NotBlank(message = "系列名称不能为空", groups = {AddGroup.class})
private String seriesName;
/** /**
* 排序 * 排序
*/ */
private Integer sort; private Integer seriesSeq;
/** /**
* 状态 * 状态0-禁用1-启用
*/ */
private Integer status; private Integer seriesStatus;
/**
* 删除状态 0-未删除 1-已删除
*/
private Integer deleted;
} }

View File

@ -1,38 +1,45 @@
package com.tmerclub.cloud.cuerecycle.model.dto; package com.tmerclub.cloud.cuerecycle.model.dto;
import com.tmerclub.cloud.common.validate.AddGroup;
import com.tmerclub.cloud.common.validate.EditGroup;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.Data; import lombok.Data;
import java.io.Serial; import java.io.Serial;
import java.io.Serializable; import java.io.Serializable;
/** /**
* 球杆类型业务对象 * 球杆类型对象
* *
* @author: frank * @author : frank
* @create: 2025-04-10 * @create : 2025-04-13
**/ */
@Data @Data
public class CueTypeDTO implements Serializable { public class CueTypeDTO implements Serializable {
@Serial @Serial
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
/** /**
* 球杆类型id * 类型ID
*/ */
private Long id; @NotNull(message = "类型ID不能为空", groups = {EditGroup.class})
private Long typeId;
/** /**
* 球杆类型名称 * 类型名称
*/ */
private String name; @NotBlank(message = "类型名称不能为空", groups = {AddGroup.class})
private String typeName;
/** /**
* 球杆类型图片 * 类型图片
*/ */
private String image; private String typeImage;
/** /**
* 排序 * 排序
*/ */
private Integer sort; private Integer typeSeq;
/** /**
* 状态 * 状态0-禁用1-启用
*/ */
private Integer status; private Integer typeStatus;
} }

View File

@ -1,6 +1,5 @@
package com.tmerclub.cloud.cuerecycle.model.vo; package com.tmerclub.cloud.cuerecycle.model.vo;
import com.tmerclub.cloud.common.model.BaseModel;
import com.tmerclub.cloud.common.vo.BaseVO; import com.tmerclub.cloud.common.vo.BaseVO;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;
@ -12,9 +11,9 @@ import java.io.Serializable;
/** /**
* 球杆品牌视图对象 * 球杆品牌视图对象
* *
* @author: frank * @author : frank
* @create: 2025-04-10 * @create : 2025-04-13
**/ */
@Data @Data
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
public class CueBrandVO extends BaseVO implements Serializable { public class CueBrandVO extends BaseVO implements Serializable {
@ -22,18 +21,28 @@ public class CueBrandVO extends BaseVO implements Serializable {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
/** /**
* 主键 * 品牌ID
*/ */
@Schema(description = "主键") @Schema(description = "品牌ID")
private Long id; private Long brandId;
/** /**
* 球杆品牌名称 * 品牌名称
*/ */
@Schema(description = "球杆品牌名称") @Schema(description = "品牌名称")
private String name; private String brandName;
/** /**
* 球杆品牌logo * 品牌logo
*/ */
@Schema(description = "球杆品牌logo") @Schema(description = "品牌logo")
private String logo; private String brandLogo;
/**
* 排序
*/
@Schema(description = "排序")
private Integer brandSeq;
/**
* 状态0-禁用1-启用
*/
@Schema(description = "状态0-禁用1-启用")
private Integer brandStatus;
} }

View File

@ -7,14 +7,13 @@ import lombok.EqualsAndHashCode;
import java.io.Serial; import java.io.Serial;
import java.io.Serializable; import java.io.Serializable;
import java.math.BigDecimal;
/** /**
* 球杆商品视图对象 * 球杆商品视图对象
* *
* @author: frank * @author : frank
* @create: 2025-04-10 * @create : 2025-04-13
**/ */
@Data @Data
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
public class CueProductVO extends BaseVO implements Serializable { public class CueProductVO extends BaseVO implements Serializable {
@ -22,38 +21,53 @@ public class CueProductVO extends BaseVO implements Serializable {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
/** /**
* 主键 * 商品ID
*/ */
@Schema(description = "主键") @Schema(description = "商品ID")
private Long id; private Long productId;
/**
* 关联的品牌ID
*/
@Schema(description = "关联的品牌ID")
private Long brandId;
/**
* 关联的系列ID
*/
@Schema(description = "关联的系列ID")
private Long seriesId;
/**
* 关联的球杆类型ID
*/
@Schema(description = "关联的球杆类型ID")
private Long typeId;
/** /**
* 商品名称 * 商品名称
*/ */
@Schema(description = "商品名称") @Schema(description = "商品名称")
private String name; private String productName;
/** /**
* 商品描述 * 商品描述
*/ */
@Schema(description = "商品描述") @Schema(description = "商品描述")
private String description; private String productDescription;
/** /**
* 商品图片 * 商品图片
*/ */
@Schema(description = "商品图片") @Schema(description = "商品图片")
private String images; private String productImages;
/** /**
* 商品价格 * 价格
*/ */
@Schema(description = "商品价格") @Schema(description = "价格")
private BigDecimal price; private Long productPrice;
/** /**
* 品牌名称 * 排序
*/ */
@Schema(description = "品牌名称") @Schema(description = "排序")
private String brandName; private Integer productSeq;
/** /**
* 品牌logo * 状态0-禁用1-启用
*/ */
@Schema(description = "品牌logo") @Schema(description = "状态0-禁用1-启用")
private String brandLogo; private Integer productStatus;
} }

View File

@ -11,9 +11,9 @@ import java.io.Serializable;
/** /**
* 球杆系列视图对象 * 球杆系列视图对象
* *
* @author: frank * @author : frank
* @create: 2025-04-10 * @create : 2025-04-13
**/ */
@Data @Data
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
public class CueSeriesVO extends BaseVO implements Serializable { public class CueSeriesVO extends BaseVO implements Serializable {
@ -21,13 +21,28 @@ public class CueSeriesVO extends BaseVO implements Serializable {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
/** /**
* 主键 * 系列ID
*/ */
@Schema(description = "主键") @Schema(description = "系列ID")
private Long id; private Long seriesId;
/**
* 关联的品牌ID
*/
@Schema(description = "关联的品牌ID")
private Long brandId;
/** /**
* 系列名称 * 系列名称
*/ */
@Schema(description = "系列名称") @Schema(description = "系列名称")
private String name; private String seriesName;
/**
* 排序
*/
@Schema(description = "排序")
private Integer seriesSeq;
/**
* 状态0-禁用1-启用
*/
@Schema(description = "状态0-禁用1-启用")
private Integer seriesStatus;
} }

View File

@ -11,9 +11,9 @@ import java.io.Serializable;
/** /**
* 球杆类型视图对象 * 球杆类型视图对象
* *
* @author: frank * @author : frank
* @create: 2025-04-10 * @create : 2025-04-13
**/ */
@Data @Data
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
public class CueTypeVO extends BaseVO implements Serializable { public class CueTypeVO extends BaseVO implements Serializable {
@ -21,18 +21,28 @@ public class CueTypeVO extends BaseVO implements Serializable {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
/** /**
* 球杆类型id * 类型ID
*/ */
@Schema(description = "球杆类型id") @Schema(description = "类型ID")
private Long id; private Long typeId;
/** /**
* 球杆类型名称 * 类型名称
*/ */
@Schema(description = "球杆类型名称") @Schema(description = "类型名称")
private String name; private String typeName;
/** /**
* 球杆类型图片 * 类型图片
*/ */
@Schema(description = "球杆类型图片") @Schema(description = "类型图片")
private String image; private String typeImage;
/**
* 排序
*/
@Schema(description = "排序")
private Integer typeSeq;
/**
* 状态0-禁用1-启用
*/
@Schema(description = "状态0-禁用1-启用")
private Integer typeStatus;
} }

View File

@ -1,10 +1,63 @@
package com.tmerclub.cloud.cuerecycle.service; package com.tmerclub.cloud.cuerecycle.service;
import com.tmerclub.cloud.common.database.dto.PageDTO;
import com.tmerclub.cloud.common.database.vo.PageVO;
import com.tmerclub.cloud.cuerecycle.model.dto.CueBrandDTO;
import com.tmerclub.cloud.cuerecycle.model.vo.CueBrandVO;
/** /**
* 球杆品牌Service接口 * 球杆品牌Service接口
* *
* @author: frank * @author : frank
* @create: 2025-04-11 * @create : 2025-04-11
**/ */
public interface CueBrandService { public interface CueBrandService {
/**
* 获取球杆品牌分页列表
*
* @param pageDTO 分页参数
* @param cueBrandDTO 查询参数
* @return 分页数据
*/
PageVO<CueBrandVO> page(PageDTO pageDTO, CueBrandDTO cueBrandDTO);
/**
* 根据类型查询
*
* @return 球杆品牌
*/
PageVO<CueBrandVO> listEnabled(PageDTO pageDTO);
/**
* 获取球杆品牌详情
*
* @param brandId 主键
* @return 球杆品牌详情
*/
CueBrandVO getById(Long brandId);
/**
* 新增球杆品牌
*
* @param cueBrandDTO 新增参数
* @return 新增结果
*/
int save(CueBrandDTO cueBrandDTO);
/**
* 修改球杆品牌
*
* @param cueBrandDTO 修改参数
* @return 修改结果
*/
int update(CueBrandDTO cueBrandDTO);
/**
* 删除球杆品牌
*
* @param brandId 主键
* @return 删除结果
*/
int delete(Long brandId);
} }

View File

@ -1,10 +1,56 @@
package com.tmerclub.cloud.cuerecycle.service; package com.tmerclub.cloud.cuerecycle.service;
import com.tmerclub.cloud.common.database.dto.PageDTO;
import com.tmerclub.cloud.common.database.vo.PageVO;
import com.tmerclub.cloud.cuerecycle.model.dto.CueProductDTO;
import com.tmerclub.cloud.cuerecycle.model.vo.CueProductVO;
/** /**
* 球杆商品Service接口 * 球杆商品Service接口
* *
* @author: frank * @author : frank
* @create: 2025-04-11 * @create : 2025-04-11
**/ */
public interface CueProductService { public interface CueProductService {
/**
* 获取球杆商品分页列表
*
* @param pageDTO 分页参数
* @param cueProductDTO 查询参数
* @return 分页数据
*/
PageVO<CueProductVO> page(PageDTO pageDTO,CueProductDTO cueProductDTO);
/**
* 获取球杆商品详情
*
* @param id 主键
* @return 球杆商品详情
*/
CueProductVO getById(Long id);
/**
* 新增球杆商品
*
* @param cueProductDTO 新增参数
* @return 新增结果
*/
int save(CueProductDTO cueProductDTO);
/**
* 修改球杆商品
*
* @param cueProductDTO 修改参数
* @return 修改结果
*/
int update(CueProductDTO cueProductDTO);
/**
* 删除球杆商品
*
* @param id 主键
* @return 删除结果
*/
int delete(Long id);
} }

View File

@ -1,10 +1,64 @@
package com.tmerclub.cloud.cuerecycle.service; package com.tmerclub.cloud.cuerecycle.service;
import com.tmerclub.cloud.common.database.dto.PageDTO;
import com.tmerclub.cloud.common.database.vo.PageVO;
import com.tmerclub.cloud.cuerecycle.model.dto.CueSeriesDTO;
import com.tmerclub.cloud.cuerecycle.model.vo.CueSeriesVO;
/** /**
* 球杆系列Service接口 * 球杆系列Service接口
* *
* @author: frank * @author : frank
* @create: 2025-04-11 * @create : 2025-04-11
**/ */
public interface CueSeriesService { public interface CueSeriesService {
/**
* 获取球杆系列分页列表
*
* @param pageDTO 分页参数
* @param cueSeriesDTO 查询参数
* @return 分页数据
*/
PageVO<CueSeriesVO> page(PageDTO pageDTO, CueSeriesDTO cueSeriesDTO);
/**
* 根据品牌id查询球杆系列
*
* @param cueSeriesDTO 搜索参数
* @return 对象集合
*/
PageVO<CueSeriesVO> listByBrand(PageDTO pageDTO, CueSeriesDTO cueSeriesDTO);
/**
* 获取球杆系列详情
*
* @param seriesId 主键
* @return 球杆系列详情
*/
CueSeriesVO getById(Long seriesId);
/**
* 新增球杆系列
*
* @param cueSeriesDTO 新增参数
* @return 新增结果
*/
int save(CueSeriesDTO cueSeriesDTO);
/**
* 修改球杆系列
*
* @param cueSeriesDTO 修改参数
* @return 修改结果
*/
int update(CueSeriesDTO cueSeriesDTO);
/**
* 删除球杆系列
*
* @param seriesId 主键
* @return 删除结果
*/
int delete(Long seriesId);
} }

View File

@ -1,39 +1,64 @@
package com.tmerclub.cloud.cuerecycle.service; package com.tmerclub.cloud.cuerecycle.service;
import com.tmerclub.cloud.cuerecycle.model.CueType; import com.tmerclub.cloud.common.database.dto.PageDTO;
import com.tmerclub.cloud.common.database.vo.PageVO;
import com.tmerclub.cloud.cuerecycle.model.dto.CueTypeDTO; import com.tmerclub.cloud.cuerecycle.model.dto.CueTypeDTO;
import com.tmerclub.cloud.cuerecycle.model.vo.CueTypeVO;
/** /**
* 球杆类型Service接口 * 球杆类型Service接口
* *
* @author: frank * @author : frank
* @create: 2025-04-11 * @create : 2025-04-11 21:22:35
**/ */
public interface CueTypeService { public interface CueTypeService {
/**
* 获取球杆类型分页列表
*
* @param pageDTO 分页参数
* @param cueTypeDTO 查询参数
* @return 分页数据
*/
PageVO<CueTypeVO> page(PageDTO pageDTO, CueTypeDTO cueTypeDTO);
/** /**
* 新增 * 查询已启动球杆类型列表
* *
* @param couponDTO 对象 * @param pageDTO 分页参数
* @return 影响行数 * @return 分页数据
*/ */
int insert(CueTypeDTO couponDTO); PageVO<CueTypeVO> listEnabled(PageDTO pageDTO);
/** /**
* 修改 * 获取球杆类型详情
* *
* @param cueType 对象 * @param typeId 主键
* @return 影响行数 * @return 球杆类型详情
*/ */
int update(CueType cueType); CueTypeVO getById(Long typeId);
/** /**
* 修改状态 * 新增球杆类型
* *
* @param id 主键id * @param cueTypeDTO 新增参数
* @param status 状态 * @return 新增结果
* @return 影响行数
*/ */
int updateStatus(Long id, Integer status); int save(CueTypeDTO cueTypeDTO);
/**
* 修改球杆类型
*
* @param cueTypeDTO 修改参数
* @return 修改结果
*/
int update(CueTypeDTO cueTypeDTO);
/**
* 删除球杆类型
*
* @param typeId 主键
* @return 删除结果
*/
int delete(Long typeId);
} }

View File

@ -1,18 +1,67 @@
package com.tmerclub.cloud.cuerecycle.service.impl; package com.tmerclub.cloud.cuerecycle.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.date.DateUtil;
import com.tmerclub.cloud.common.database.util.PageUtil;
import com.tmerclub.cloud.common.database.dto.PageDTO;
import com.tmerclub.cloud.common.database.vo.PageVO;
import com.tmerclub.cloud.cuerecycle.model.dto.CueBrandDTO;
import com.tmerclub.cloud.cuerecycle.model.vo.CueBrandVO;
import com.tmerclub.cloud.cuerecycle.model.CueBrand;
import com.tmerclub.cloud.cuerecycle.mapper.CueBrandMapper; import com.tmerclub.cloud.cuerecycle.mapper.CueBrandMapper;
import com.tmerclub.cloud.cuerecycle.service.CueBrandService; import com.tmerclub.cloud.cuerecycle.service.CueBrandService;
import jakarta.annotation.Resource; import jakarta.annotation.Resource;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
/** /**
* 球杆品牌Service接口 * 球杆品牌Service实现类
* *
* @author: frank * @author : frank
* @create: 2025-04-11 * @create : 2025-04-11
**/ */
@Service @Service
public class CueBrandServiceImpl implements CueBrandService { public class CueBrandServiceImpl implements CueBrandService {
@Resource @Resource
CueBrandMapper cueBrandMapper; CueBrandMapper cueBrandMapper;
@Override
public PageVO<CueBrandVO> page(PageDTO pageDTO, CueBrandDTO cueBrandDTO) {
return PageUtil.doPage(pageDTO, () -> cueBrandMapper.list(cueBrandDTO));
}
@Override
public PageVO<CueBrandVO> listEnabled(PageDTO pageDTO) {
CueBrandDTO cueBrandDTO = new CueBrandDTO();
cueBrandDTO.setBrandStatus(1);
return PageUtil.doPage(pageDTO, () -> cueBrandMapper.list(cueBrandDTO));
}
@Override
public CueBrandVO getById(Long brandId) {
return cueBrandMapper.getById(brandId);
}
@Override
public int save(CueBrandDTO cueBrandDTO) {
CueBrand cueBrand = BeanUtil.toBean(cueBrandDTO, CueBrand.class);
cueBrand.setCreateTime(DateUtil.date());
return cueBrandMapper.save(cueBrand);
}
@Override
public int update(CueBrandDTO cueBrandDTO) {
CueBrand cueBrand = BeanUtil.toBean(cueBrandDTO, CueBrand.class);
cueBrand.setUpdateTime(DateUtil.date());
return cueBrandMapper.update(cueBrand);
}
@Override
public int delete(Long brandId) {
CueBrandVO cueBrandVO = cueBrandMapper.getById(brandId);
CueBrand cueBrand = BeanUtil.toBean(cueBrandVO, CueBrand.class);
cueBrand.setUpdateTime(DateUtil.date());
cueBrand.setDeleted(1);
return cueBrandMapper.update(cueBrand);
}
} }

View File

@ -1,14 +1,60 @@
package com.tmerclub.cloud.cuerecycle.service.impl; package com.tmerclub.cloud.cuerecycle.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.date.DateUtil;
import com.tmerclub.cloud.common.database.util.PageUtil;
import com.tmerclub.cloud.common.database.dto.PageDTO;
import com.tmerclub.cloud.common.database.vo.PageVO;
import com.tmerclub.cloud.cuerecycle.model.dto.CueProductDTO;
import com.tmerclub.cloud.cuerecycle.model.vo.CueProductVO;
import com.tmerclub.cloud.cuerecycle.model.CueProduct;
import com.tmerclub.cloud.cuerecycle.mapper.CueProductMapper;
import com.tmerclub.cloud.cuerecycle.service.CueProductService; import com.tmerclub.cloud.cuerecycle.service.CueProductService;
import jakarta.annotation.Resource;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
/** /**
* 球杆商品Service接口 * 球杆商品Service实现类
* *
* @author: frank * @author : frank
* @create: 2025-04-11 * @create : 2025-04-11
**/ */
@Service @Service
public class CueProductServiceImpl implements CueProductService { public class CueProductServiceImpl implements CueProductService {
@Resource
CueProductMapper cueProductMapper;
@Override
public PageVO<CueProductVO> page(PageDTO pageDTO, CueProductDTO cueProductDTO) {
return PageUtil.doPage(pageDTO, () -> cueProductMapper.list(cueProductDTO));
}
@Override
public CueProductVO getById(Long id) {
return cueProductMapper.getById(id);
}
@Override
public int save(CueProductDTO cueProductDTO) {
CueProduct cueProduct = BeanUtil.toBean(cueProductDTO, CueProduct.class);
cueProduct.setCreateTime(DateUtil.date());
return cueProductMapper.save(cueProduct);
}
@Override
public int update(CueProductDTO cueProductDTO) {
CueProduct cueProduct = BeanUtil.toBean(cueProductDTO, CueProduct.class);
cueProduct.setUpdateTime(DateUtil.date());
return cueProductMapper.update(cueProduct);
}
@Override
public int delete(Long id) {
CueProductVO cueProductVO = cueProductMapper.getById(id);
CueProduct cueProduct = BeanUtil.toBean(cueProductVO, CueProduct.class);
cueProduct.setUpdateTime(DateUtil.date());
cueProduct.setDeleted(1);
return cueProductMapper.update(cueProduct);
}
} }

View File

@ -1,14 +1,66 @@
package com.tmerclub.cloud.cuerecycle.service.impl; package com.tmerclub.cloud.cuerecycle.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.date.DateUtil;
import com.tmerclub.cloud.common.database.dto.PageDTO;
import com.tmerclub.cloud.common.database.util.PageUtil;
import com.tmerclub.cloud.common.database.vo.PageVO;
import com.tmerclub.cloud.cuerecycle.mapper.CueSeriesMapper;
import com.tmerclub.cloud.cuerecycle.model.CueSeries;
import com.tmerclub.cloud.cuerecycle.model.dto.CueSeriesDTO;
import com.tmerclub.cloud.cuerecycle.model.vo.CueSeriesVO;
import com.tmerclub.cloud.cuerecycle.service.CueSeriesService; import com.tmerclub.cloud.cuerecycle.service.CueSeriesService;
import jakarta.annotation.Resource;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
/** /**
* 球杆系列Service接口 * 球杆系列Service实现类
* *
* @author: frank * @author : frank
* @create: 2025-04-11 * @create : 2025-04-11
**/ */
@Service @Service
public class CueSeriesServiceImpl implements CueSeriesService { public class CueSeriesServiceImpl implements CueSeriesService {
@Resource
CueSeriesMapper cueSeriesMapper;
@Override
public PageVO<CueSeriesVO> page(PageDTO pageDTO, CueSeriesDTO cueSeriesDTO) {
return PageUtil.doPage(pageDTO, () -> cueSeriesMapper.list(cueSeriesDTO));
}
@Override
public PageVO<CueSeriesVO> listByBrand(PageDTO pageDTO, CueSeriesDTO cueSeriesDTO) {
cueSeriesDTO.setSeriesStatus(1);
return PageUtil.doPage(pageDTO, () -> cueSeriesMapper.list(cueSeriesDTO));
}
@Override
public CueSeriesVO getById(Long seriesId) {
return cueSeriesMapper.getById(seriesId);
}
@Override
public int save(CueSeriesDTO cueSeriesDTO) {
CueSeries cueSeries = BeanUtil.toBean(cueSeriesDTO, CueSeries.class);
cueSeries.setCreateTime(DateUtil.date());
return cueSeriesMapper.save(cueSeries);
}
@Override
public int update(CueSeriesDTO cueSeriesDTO) {
CueSeries cueSeries = BeanUtil.toBean(cueSeriesDTO, CueSeries.class);
cueSeries.setUpdateTime(DateUtil.date());
return cueSeriesMapper.update(cueSeries);
}
@Override
public int delete(Long seriesId) {
CueSeriesVO cueSeriesVO = cueSeriesMapper.getById(seriesId);
CueSeries cueSeries = BeanUtil.toBean(cueSeriesVO, CueSeries.class);
cueSeries.setUpdateTime(DateUtil.date());
cueSeries.setDeleted(1);
return cueSeriesMapper.update(cueSeries);
}
} }

View File

@ -2,40 +2,66 @@ package com.tmerclub.cloud.cuerecycle.service.impl;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import com.tmerclub.cloud.common.database.dto.PageDTO;
import com.tmerclub.cloud.common.database.util.PageUtil;
import com.tmerclub.cloud.common.database.vo.PageVO;
import com.tmerclub.cloud.cuerecycle.mapper.CueTypeMapper; import com.tmerclub.cloud.cuerecycle.mapper.CueTypeMapper;
import com.tmerclub.cloud.cuerecycle.model.CueType; import com.tmerclub.cloud.cuerecycle.model.CueType;
import com.tmerclub.cloud.cuerecycle.model.dto.CueTypeDTO; import com.tmerclub.cloud.cuerecycle.model.dto.CueTypeDTO;
import com.tmerclub.cloud.cuerecycle.model.vo.CueTypeVO;
import com.tmerclub.cloud.cuerecycle.service.CueTypeService; import com.tmerclub.cloud.cuerecycle.service.CueTypeService;
import jakarta.annotation.Resource; import jakarta.annotation.Resource;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
/** /**
* 球杆类型Service接口 * 球杆类型表Service实现类
* *
* @author: frank * @author : frank
* @create: 2025-04-11 * @create : 2025-04-11 21:22:35
**/ */
@Service @Service
public class CueTypeServiceImpl implements CueTypeService { public class CueTypeServiceImpl implements CueTypeService {
@Resource @Resource
CueTypeMapper cueTypeMapper; CueTypeMapper cueTypeMapper;
@Override @Override
public int insert(CueTypeDTO couponDTO) { public PageVO<CueTypeVO> page(PageDTO pageDTO, CueTypeDTO cueTypeDTO) {
CueType cueType = BeanUtil.toBean(couponDTO, CueType.class); return PageUtil.doPage(pageDTO, () -> cueTypeMapper.list(cueTypeDTO));
cueType.setCreateTime(DateUtil.date());
return cueTypeMapper.insert(cueType);
} }
@Override @Override
public int update(CueType cueType) { public PageVO<CueTypeVO> listEnabled(PageDTO pageDTO) {
CueTypeDTO cueTypeDTO = new CueTypeDTO();
cueTypeDTO.setTypeStatus(1);
return PageUtil.doPage(pageDTO, () -> cueTypeMapper.list(cueTypeDTO));
}
@Override
public CueTypeVO getById(Long typeId) {
return cueTypeMapper.getById(typeId);
}
@Override
public int save(CueTypeDTO cueTypeDTO) {
CueType cueType = BeanUtil.toBean(cueTypeDTO, CueType.class);
cueType.setCreateTime(DateUtil.date());
return cueTypeMapper.save(cueType);
}
@Override
public int update(CueTypeDTO cueTypeDTO) {
CueType cueType = BeanUtil.toBean(cueTypeDTO, CueType.class);
cueType.setUpdateTime(DateUtil.date()); cueType.setUpdateTime(DateUtil.date());
return cueTypeMapper.update(cueType); return cueTypeMapper.update(cueType);
} }
@Override @Override
public int updateStatus(Long id, Integer status) { public int delete(Long typeId) {
return cueTypeMapper.updateStatus(id, status); CueTypeVO cueTypeVO = cueTypeMapper.getById(typeId);
CueType cueType = BeanUtil.toBean(cueTypeVO, CueType.class);
cueType.setUpdateTime(DateUtil.date());
cueType.setDeleted(1);
return cueTypeMapper.update(cueType);
} }
} }

View File

@ -1,80 +1,62 @@
<?xml version="1.0" encoding="UTF-8"?> <?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"> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.tmerclub.cloud.cuerecycle.mapper.CueBrandMapper"> <mapper namespace="com.tmerclub.cloud.cuerecycle.mapper.CueBrandMapper">
<resultMap id="BaseResultMap" type="com.tmerclub.cloud.cuerecycle.model.CueBrand"> <!-- 可根据自己的需求,是否要使用 -->
<id column="id" property="id"/> <resultMap id="cueBrandVOMap" type="com.tmerclub.cloud.cuerecycle.model.vo.CueBrandVO">
<result column="type_id" property="typeId"/> <result property="brandId" column="brand_id"/>
<result column="name" property="name"/> <result property="brandName" column="brand_name"/>
<result column="logo" property="logo"/> <result property="brandLogo" column="brand_logo"/>
<result column="sort" property="sort"/> <result property="brandSeq" column="brand_seq"/>
<result column="status" property="status"/> <result property="brandStatus" column="brand_status"/>
<result column="create_time" property="createTime"/> <result property="createTime" column="create_time"/>
<result column="update_time" property="updateTime"/> <result property="updateTime" column="update_time"/>
</resultMap> </resultMap>
<sql id="Base_Column_List"> <sql id="Vo_Column_List">
id, type_id, name, logo, image, sort, status, create_time, update_time brand_id,brand_name,brand_logo,brand_seq,brand_status,deleted,create_time,update_time
</sql> </sql>
<select id="selectById" resultMap="BaseResultMap"> <select id="list" resultMap="cueBrandVOMap">
SELECT SELECT
<include refid="Base_Column_List"/> <include refid="Vo_Column_List" />
FROM FROM cue_brand
cue_brand
WHERE
id = #{id}
</select>
<select id="listByType" resultMap="BaseResultMap">
SELECT
<include refid="Base_Column_List"/>
FROM
cue_brand
WHERE
type_id = #{typeId}
AND status = 1
ORDER BY
sort ASC,
id DESC
</select>
<select id="list" resultMap="BaseResultMap">
SELECT
<include refid="Base_Column_List"/>
FROM
cue_brand
<where> <where>
<if test="typeId != null"> deleted = 0
AND type_id = #{typeId} <if test="dto.brandName != null and dto.brandName != ''">
AND brand_name LIKE CONCAT('%', #{dto.brandName}, '%')
</if> </if>
<if test="name != null and name != ''"> <if test="dto.brandStatus != null">
AND name LIKE CONCAT('%', #{name}, '%') AND brand_status = #{dto.brandStatus}
</if>
<if test="status != null">
AND status = #{status}
</if> </if>
</where> </where>
ORDER BY sort ASC, id DESC ORDER BY
brand_seq ASC,
brand_id DESC
</select> </select>
<insert id="insert" useGeneratedKeys="true" keyProperty="id"> <select id="getById" resultMap="cueBrandVOMap">
INSERT INTO cue_brand SELECT
<include refid="Vo_Column_List" />
FROM cue_brand
WHERE brand_id = #{brandId}
</select>
<insert id="save" useGeneratedKeys="true" keyProperty="brandId">
INSERT INTO cue_brand
<trim prefix="(" suffix=")" suffixOverrides=","> <trim prefix="(" suffix=")" suffixOverrides=",">
<if test="typeId != null">type_id,</if> <if test="brandName != null and brandName != ''">brand_name,</if>
<if test="name != null">name,</if> <if test="brandLogo != null and brandLogo != ''">brand_logo,</if>
<if test="logo != null">logo,</if> <if test="brandSeq != null">brand_seq,</if>
<if test="sort != null">sort,</if> <if test="brandStatus != null">brand_status,</if>
<if test="status != null">status,</if>
<if test="createTime != null">create_time,</if> <if test="createTime != null">create_time,</if>
</trim> </trim>
<trim prefix="values (" suffix=")" suffixOverrides=","> <trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="typeId != null">#{typeId},</if> <if test="brandName != null and brandName != ''">#{brandName},</if>
<if test="name != null">#{name},</if> <if test="brandLogo != null and brandLogo != ''">#{brandLogo},</if>
<if test="logo != null">#{logo},</if> <if test="brandSeq != null">#{brandSeq},</if>
<if test="sort != null">#{sort},</if> <if test="brandStatus != null">#{brandStatus},</if>
<if test="status != null">#{status},</if>
<if test="createTime != null">#{createTime},</if> <if test="createTime != null">#{createTime},</if>
</trim> </trim>
</insert> </insert>
@ -82,20 +64,25 @@
<update id="update"> <update id="update">
UPDATE cue_brand UPDATE cue_brand
<set> <set>
<if test="typeId != null">type_id = #{typeId},</if> <if test="brandName != null and brandName != ''">
<if test="name != null">name = #{name},</if> brand_name = #{brandName},
<if test="logo != null">logo = #{logo},</if> </if>
<if test="sort != null">sort = #{sort},</if> <if test="brandLogo != null and brandLogo != ''">
<if test="status != null">status = #{status},</if> brand_logo = #{brandLogo},
</if>
<if test="brandSeq != null">
brand_seq = #{brandSeq},
</if>
<if test="brandStatus != null">
brand_status = #{brandStatus},
</if>
<if test="deleted != null">
deleted = #{deleted},
</if>
<if test="updateTime != null">
update_time = #{updateTime},
</if>
</set> </set>
WHERE id = #{id} where brand_id = #{brandId}
</update>
<update id="updateStatus">
UPDATE
cue_brand
SET
status = #{status}
WHERE
id = #{id}
</update> </update>
</mapper> </mapper>

View File

@ -1,80 +1,130 @@
<?xml version="1.0" encoding="UTF-8"?> <?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"> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.tmerclub.cloud.cuerecycle.mapper.CueProductMapper"> <mapper namespace="com.tmerclub.cloud.cuerecycle.mapper.CueProductMapper">
<resultMap id="BaseResultMap" type="com.tmerclub.cloud.cuerecycle.model.CueProduct"> <!-- 可根据自己的需求,是否要使用 -->
<id column="id" property="id"/> <resultMap id="cueProductVOMap" type="com.tmerclub.cloud.cuerecycle.model.vo.CueProductVO">
<result column="series_id" property="seriesId"/> <result property="productId" column="product_id"/>
<result column="name" property="name"/> <result property="brandId" column="brand_id"/>
<result column="description" property="description"/> <result property="seriesId" column="series_id"/>
<result column="images" property="images"/> <result property="typeId" column="type_id"/>
<result column="price" property="price"/> <result property="productName" column="product_name"/>
<result column="sort" property="sort"/> <result property="productDescription" column="product_description"/>
<result column="status" property="status"/> <result property="productImages" column="product_images"/>
<result column="create_time" property="createTime"/> <result property="productPrice" column="product_price"/>
<result column="update_time" property="updateTime"/> <result property="productSeq" column="product_seq"/>
<result property="productStatus" column="product_status"/>
<result property="createTime" column="create_time"/>
<result property="updateTime" column="update_time"/>
</resultMap> </resultMap>
<sql id="Base_Column_List"> <sql id="Vo_Column_List">
id, series_id, name, description, images, price, sort, status, create_time, update_time product_id,brand_id,series_id,type_id,product_name,product_description,product_images,product_price,product_seq,product_status,deleted,create_time,update_time
</sql> </sql>
<select id="selectById" resultMap="BaseResultMap"> <select id="list" resultMap="cueProductVOMap">
SELECT <include refid="Base_Column_List"/> SELECT
FROM cue_product <include refid="Vo_Column_List" />
WHERE id = #{id} FROM
</select> cue_product
<select id="listBySeries" resultMap="BaseResultMap">
SELECT <include refid="Base_Column_List"/>
FROM cue_product
WHERE series_id = #{seriesId}
AND status = 1
ORDER BY sort ASC, id DESC
</select>
<select id="list" resultMap="BaseResultMap">
SELECT <include refid="Base_Column_List"/>
FROM cue_product
<where> <where>
<if test="seriesId != null"> deleted = 0
AND series_id = #{seriesId} <if test="dto.productName != null and dto.productName != ''">
AND product_name LIKE CONCAT('%', #{dto.productName}, '%')
</if> </if>
<if test="name != null and name != ''"> <if test="dto.productStatus != null">
AND name LIKE CONCAT('%', #{name}, '%') AND product_status = #{dto.productStatus}
</if> </if>
<if test="status != null"> <if test="dto.brandId != null">
AND status = #{status} AND brand_id = #{dto.brandId}
</if>
<if test="dto.typeId != null">
AND type_id = #{dto.typeId}
</if>
<if test="dto.seriesId != null">
AND series_id = #{dto.seriesId}
</if> </if>
</where> </where>
ORDER BY sort ASC, id DESC ORDER BY
product_seq ASC,
product_id DESC
</select> </select>
<insert id="insert" useGeneratedKeys="true" keyProperty="id"> <select id="getById" resultMap="cueProductVOMap">
INSERT INTO cue_product (series_id, name, description, images, price, sort, status) SELECT
VALUES (#{seriesId}, #{name}, #{description}, #{images}, #{price}, #{sort}, #{status}) <include refid="Vo_Column_List" />
FROM
cue_product
WHERE
product_id = #{productId}
</select>
<insert id="save" useGeneratedKeys="true" keyProperty="productId">
INSERT INTO cue_product
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="brandId != null">brand_id,</if>
<if test="seriesId != null">series_id,</if>
<if test="typeId != null">type_id,</if>
<if test="productName != null and productName != ''">product_name,</if>
<if test="productDescription != null and productDescription != ''">product_description,</if>
<if test="productImages != null and productImages != ''">product_images,</if>
<if test="productPrice != null">product_price,</if>
<if test="productSeq != null">product_seq,</if>
<if test="productStatus != null">product_status,</if>
<if test="createTime != null">create_time,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="brandId != null">#{brandId},</if>
<if test="seriesId != null">#{seriesId},</if>
<if test="typeId != null">#{typeId},</if>
<if test="productName != null and productName != ''">#{productName},</if>
<if test="productDescription != null and productDescription != ''">#{productDescription},</if>
<if test="productImages != null and productImages != ''">#{productImages},</if>
<if test="productPrice != null">#{productPrice},</if>
<if test="productSeq != null">#{productSeq},</if>
<if test="productStatus != null">#{productStatus},</if>
<if test="createTime != null">#{createTime},</if>
</trim>
</insert> </insert>
<update id="update"> <update id="update">
UPDATE cue_product UPDATE cue_product
<set> <set>
<if test="seriesId != null">series_id = #{seriesId},</if> <if test="brandId != null">
<if test="name != null">name = #{name},</if> brand_id = #{brandId},
<if test="description != null">description = #{description},</if> </if>
<if test="images != null">images = #{images},</if> <if test="seriesId != null">
<if test="price != null">price = #{price},</if> series_id = #{seriesId},
<if test="sort != null">sort = #{sort},</if> </if>
<if test="status != null">status = #{status},</if> <if test="typeId != null">
type_id = #{typeId},
</if>
<if test="productName != null and productName != ''">
product_name = #{productName},
</if>
<if test="productDescription != null and productDescription != ''">
product_description = #{productDescription},
</if>
<if test="productImages != null and productImages != ''">
product_images = #{productImages},
</if>
<if test="productPrice != null">
product_price = #{productPrice},
</if>
<if test="productSeq != null">
product_seq = #{productSeq},
</if>
<if test="productStatus != null">
product_status = #{productStatus},
</if>
<if test="deleted != null">
deleted = #{deleted},
</if>
<if test="updateTime != null">
update_time = #{updateTime},
</if>
</set> </set>
WHERE id = #{id} where product_id = #{productId}
</update>
<update id="updateStatus">
UPDATE
cue_product
SET
status = #{status}
WHERE
id = #{id}
</update> </update>
</mapper> </mapper>

View File

@ -1,79 +1,67 @@
<?xml version="1.0" encoding="UTF-8"?> <?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"> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.tmerclub.cloud.cuerecycle.mapper.CueSeriesMapper"> <mapper namespace="com.tmerclub.cloud.cuerecycle.mapper.CueSeriesMapper">
<resultMap id="BaseResultMap" type="com.tmerclub.cloud.cuerecycle.model.CueSeries"> <!-- 可根据自己的需求,是否要使用 -->
<id column="id" property="id"/> <resultMap id="cueSeriesVOMap" type="com.tmerclub.cloud.cuerecycle.model.vo.CueSeriesVO">
<result column="brand_id" property="brandId"/> <result property="seriesId" column="series_id"/>
<result column="name" property="name"/> <result property="brandId" column="brand_id"/>
<result column="sort" property="sort"/> <result property="seriesName" column="series_name"/>
<result column="status" property="status"/> <result property="seriesSeq" column="series_seq"/>
<result column="create_time" property="createTime"/> <result property="seriesStatus" column="series_status"/>
<result column="update_time" property="updateTime"/> <result property="createTime" column="create_time"/>
<result property="updateTime" column="update_time"/>
</resultMap> </resultMap>
<sql id="Base_Column_List"> <sql id="Vo_Column_List">
id, brand_id, name, sort, status, create_time, update_time series_id,brand_id,series_name,series_seq,series_status,deleted,create_time,update_time
</sql> </sql>
<select id="selectById" resultMap="BaseResultMap"> <select id="list" resultMap="cueSeriesVOMap">
SELECT SELECT
<include refid="Base_Column_List"/> <include refid="Vo_Column_List" />
FROM FROM cue_series
cue_series
WHERE
id = #{id}
</select>
<select id="listByBrand" resultMap="BaseResultMap">
SELECT
<include refid="Base_Column_List"/>
FROM
cue_series
WHERE
brand_id = #{brandId}
AND status = 1
ORDER BY
sort ASC,
id DESC
</select>
<select id="list" resultMap="BaseResultMap">
SELECT
<include refid="Base_Column_List"/>
FROM
cue_series
<where> <where>
<if test="brandId != null"> deleted = 0
AND brand_id = <if test="dto.seriesName != null and dto.seriesName != ''">
#{brandId} AND series_name LIKE CONCAT('%', #{dto.seriesName}, '%')
</if> </if>
<if test="name != null and name != ''"> <if test="dto.seriesStatus != null">
AND name LIKE CONCAT('%',#{name},'%') AND series_status = #{dto.seriesStatus}
</if> </if>
<if test="status != null"> <if test="dto.brandId != null">
AND status = #{status} AND brand_id = #{dto.brandId}
</if> </if>
</where> </where>
ORDER BY ORDER BY
sort ASC, series_seq ASC,
id DESC series_id DESC
</select> </select>
<insert id="insert" useGeneratedKeys="true" keyProperty="id"> <select id="getById" resultMap="cueSeriesVOMap">
SELECT
<include refid="Vo_Column_List" />
FROM
cue_series
WHERE
series_id = #{seriesId}
</select>
<insert id="save" useGeneratedKeys="true" keyProperty="seriesId">
INSERT INTO cue_series INSERT INTO cue_series
<trim prefix="(" suffix=")" suffixOverrides=","> <trim prefix="(" suffix=")" suffixOverrides=",">
<if test="brandId != null">brand_id,</if> <if test="brandId != null">brand_id,</if>
<if test="name != null">name,</if> <if test="seriesName != null and seriesName != ''">series_name,</if>
<if test="sort != null">sort,</if> <if test="seriesSeq != null">series_seq,</if>
<if test="status != null">status,</if> <if test="seriesStatus != null">series_status,</if>
<if test="createTime != null">create_time,</if> <if test="createTime != null">create_time,</if>
</trim> </trim>
<trim prefix="VALUES (" suffix=")" suffixOverrides=","> <trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="brandId != null">#{brandId},</if> <if test="brandId != null">#{brandId},</if>
<if test="name != null">#{name},</if> <if test="seriesName != null and seriesName != ''">#{seriesName},</if>
<if test="sort != null">#{sort},</if> <if test="seriesSeq != null">#{seriesSeq},</if>
<if test="status != null">#{status},</if> <if test="seriesStatus != null">#{seriesStatus},</if>
<if test="createTime != null">#{createTime},</if> <if test="createTime != null">#{createTime},</if>
</trim> </trim>
</insert> </insert>
@ -81,21 +69,25 @@
<update id="update"> <update id="update">
UPDATE cue_series UPDATE cue_series
<set> <set>
<if test="brandId != null">brand_id = #{brandId},</if> <if test="brandId != null">
<if test="name != null">name = #{name},</if> brand_id = #{brandId},
<if test="sort != null">sort = #{sort},</if> </if>
<if test="status != null">status = #{status},</if> <if test="seriesName != null and seriesName != ''">
<if test="updateTime != null">update_time = #{updateTime},</if> series_name = #{seriesName},
</if>
<if test="seriesSeq != null">
series_seq = #{seriesSeq},
</if>
<if test="seriesStatus != null">
series_status = #{seriesStatus},
</if>
<if test="deleted != null">
deleted = #{deleted},
</if>
<if test="updateTime != null">
update_time = #{updateTime},
</if>
</set> </set>
WHERE id = #{id} where series_id = #{seriesId}
</update>
<update id="updateStatus">
UPDATE
cue_series
SET
status = #{status}
WHERE
id = #{id}
</update> </update>
</mapper> </mapper>

View File

@ -1,74 +1,64 @@
<?xml version="1.0" encoding="UTF-8"?> <?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"> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.tmerclub.cloud.cuerecycle.mapper.CueTypeMapper"> <mapper namespace="com.tmerclub.cloud.cuerecycle.mapper.CueTypeMapper">
<resultMap id="BaseResultMap" type="com.tmerclub.cloud.cuerecycle.model.CueType"> <!-- 可根据自己的需求,是否要使用 -->
<id column="id" property="id"/> <resultMap id="cueTypeVOMap" type="com.tmerclub.cloud.cuerecycle.model.vo.CueTypeVO">
<result column="name" property="name"/> <result property="typeId" column="type_id"/>
<result column="image" property="image"/> <result property="typeName" column="type_name"/>
<result column="sort" property="sort"/> <result property="typeImage" column="type_image"/>
<result column="status" property="status"/> <result property="typeSeq" column="type_seq"/>
<result column="create_time" property="createTime"/> <result property="typeStatus" column="type_status"/>
<result column="update_time" property="updateTime"/> <result property="createTime" column="create_time"/>
<result property="updateTime" column="update_time"/>
</resultMap> </resultMap>
<sql id="Base_Column_List"> <sql id="Vo_Column_List">
id, name, image, sort, status, create_time, update_time type_id,type_name,type_image,type_seq,type_status,deleted,create_time,update_time
</sql> </sql>
<select id="selectById" resultMap="BaseResultMap"> <select id="list" resultMap="cueTypeVOMap">
SELECT SELECT
<include refid="Base_Column_List"/> <include refid="Vo_Column_List" />
FROM FROM cue_type
cue_type
WHERE
id = #{id}
</select>
<select id="listEnabled" resultMap="BaseResultMap">
SELECT
<include refid="Base_Column_List"/>
FROM
cue_type
WHERE
status = 1
ORDER BY
sort ASC,
id DESC
</select>
<select id="list" resultMap="BaseResultMap">
SELECT
<include refid="Base_Column_List"/>
FROM
cue_type
<where> <where>
<if test="name != null and name != ''"> deleted = 0
AND name LIKE CONCAT('%', #{name}, '%') <if test="dto.typeStatus != null">
AND type_status = #{dto.typeStatus}
</if> </if>
<if test="status != null"> <if test="dto.typeName != null and dto.typeName != ''">
AND status = #{status} AND type_name like CONCAT('%', #{dto.typeName}, '%')
</if> </if>
</where> </where>
ORDER BY ORDER BY
sort ASC, type_seq asc,
id DESC type_id desc
</select> </select>
<insert id="insert" useGeneratedKeys="true" keyProperty="id"> <select id="getById" resultMap="cueTypeVOMap">
SELECT
<include refid="Vo_Column_List" />
FROM
cue_type
WHERE
type_id = #{typeId}
</select>
<insert id="save" useGeneratedKeys="true" keyProperty="typeId">
INSERT INTO cue_type INSERT INTO cue_type
<trim prefix="(" suffix=")" suffixOverrides=","> <trim prefix="(" suffix=")" suffixOverrides=",">
<if test="name != null">name,</if> <if test="typeName != null and typeName != ''">type_name,</if>
<if test="image != null">image,</if> <if test="typeImage != null and typeImage != ''">type_image,</if>
<if test="sort != null">sort,</if> <if test="typeSeq != null">type_seq,</if>
<if test="status != null">status,</if> <if test="typeStatus != null">type_status,</if>
<if test="createTime != null">create_time,</if> <if test="createTime != null">create_time,</if>
</trim> </trim>
<trim prefix="values (" suffix=")" suffixOverrides=","> <trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="name != null">#{name},</if> <if test="typeName != null and typeName != ''">#{typeName},</if>
<if test="image != null">#{image},</if> <if test="typeImage != null and typeImage != ''">#{typeImage},</if>
<if test="sort != null">#{sort},</if> <if test="typeSeq != null">#{typeSeq},</if>
<if test="status != null">#{status},</if> <if test="typeStatus != null">#{typeStatus},</if>
<if test="createTime != null">#{createTime},</if> <if test="createTime != null">#{createTime},</if>
</trim> </trim>
</insert> </insert>
@ -76,22 +66,25 @@
<update id="update"> <update id="update">
UPDATE cue_type UPDATE cue_type
<set> <set>
<if test="name != null">name = #{name},</if> <if test="typeName != null and typeName != ''">
<if test="image != null">image = #{image},</if> type_name = #{typeName},
<if test="sort != null">sort = #{sort},</if> </if>
<if test="status != null">status = #{status},</if> <if test="typeImage != null and typeImage != ''">
<if test="updateTime != null">update_time = #{updateTime},</if> type_image = #{typeImage},
</if>
<if test="typeSeq != null">
type_seq = #{typeSeq},
</if>
<if test="typeStatus != null">
type_status = #{typeStatus},
</if>
<if test="deleted != null">
deleted = #{deleted},
</if>
<if test="updateTime != null">
update_time = #{updateTime},
</if>
</set> </set>
WHERE id = #{id} where type_id = #{typeId}
</update> </update>
<update id="updateStatus">
UPDATE
cue_type
SET
status = #{status}
WHERE
id = #{id}
</update>
</mapper> </mapper>