From 80edd84c4f6524b9ead9c4ee6b82fd880eda0f32 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B0=AD=E5=87=AF=E5=87=AF?= Date: Wed, 25 Sep 2024 15:49:26 +0800 Subject: [PATCH] =?UTF-8?q?=E5=BA=97=E9=93=BA=E7=AE=A1=E7=90=86-=E5=BA=97?= =?UTF-8?q?=E9=93=BA=E9=85=8D=E7=BD=AE=EF=BC=9A=E6=89=93=E5=8D=B0=E6=9C=BA?= =?UTF-8?q?=E8=AE=BE=E7=BD=AE=E7=9B=B8=E5=85=B3=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../shop/ShopPrinterController.java | 79 +++++++++++ .../ysk/cashier/dto/shop/ShopPrinterDTO.java | 67 +++++++++ .../mybatis/mapper/TbPrintMachineMapper.java | 14 ++ .../pojo/shop/TbPrintMachineEntity.java | 45 ++++++ .../impl/shopimpl/ShopPrinterServiceImpl.java | 128 ++++++++++++++++++ .../service/shop/ShopPrinterService.java | 31 +++++ .../resources/mapper/TbPrintMachineMapper.xml | 7 + 7 files changed, 371 insertions(+) create mode 100644 eladmin-system/src/main/java/cn/ysk/cashier/controller/shop/ShopPrinterController.java create mode 100644 eladmin-system/src/main/java/cn/ysk/cashier/dto/shop/ShopPrinterDTO.java create mode 100644 eladmin-system/src/main/java/cn/ysk/cashier/mybatis/mapper/TbPrintMachineMapper.java create mode 100644 eladmin-system/src/main/java/cn/ysk/cashier/pojo/shop/TbPrintMachineEntity.java create mode 100644 eladmin-system/src/main/java/cn/ysk/cashier/service/impl/shopimpl/ShopPrinterServiceImpl.java create mode 100644 eladmin-system/src/main/java/cn/ysk/cashier/service/shop/ShopPrinterService.java create mode 100644 eladmin-system/src/main/resources/mapper/TbPrintMachineMapper.xml diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/controller/shop/ShopPrinterController.java b/eladmin-system/src/main/java/cn/ysk/cashier/controller/shop/ShopPrinterController.java new file mode 100644 index 00000000..da3b52da --- /dev/null +++ b/eladmin-system/src/main/java/cn/ysk/cashier/controller/shop/ShopPrinterController.java @@ -0,0 +1,79 @@ +package cn.ysk.cashier.controller.shop; + +import cn.ysk.cashier.dto.shop.ShopPrinterDTO; +import cn.ysk.cashier.service.shop.ShopPrinterService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.*; + +import java.util.List; +import java.util.Map; + +/** + * 店铺打印机配置 + * + * @author tankaikai + * @since 2024-09-24 16:56 + */ +@Slf4j +@RestController +@RequiredArgsConstructor +@Api(tags = "店铺配置-打印机设置") +@RequestMapping("/api/shop-config/printer") +public class ShopPrinterController { + + private final ShopPrinterService shopPrinterService; + + @GetMapping("page") + @ApiOperation("分页") + public ResponseEntity page(@RequestParam Map params) { + Map page = shopPrinterService.page(params); + return ResponseEntity.ok().body(page); + } + + @GetMapping("list") + @ApiOperation("列表") + public ResponseEntity list(@RequestParam Map params) { + List list = shopPrinterService.list(params); + return ResponseEntity.ok().body(list); + } + + @GetMapping("{id}") + @ApiOperation("详情") + public ResponseEntity get(@PathVariable("id") Integer id) { + ShopPrinterDTO data = shopPrinterService.get(id); + return ResponseEntity.ok().body(data); + } + + @PostMapping + @ApiOperation("保存") + public ResponseEntity save(@RequestBody ShopPrinterDTO dto) { + shopPrinterService.save(dto); + return new ResponseEntity<>(HttpStatus.OK); + } + + @PutMapping + @ApiOperation("修改") + public ResponseEntity update(@RequestBody ShopPrinterDTO dto) { + shopPrinterService.update(dto); + return new ResponseEntity<>(HttpStatus.OK); + } + + @DeleteMapping("{id}") + @ApiOperation("删除") + public ResponseEntity delete(@PathVariable("id") Integer id) { + shopPrinterService.delete(id); + return new ResponseEntity<>(HttpStatus.OK); + } + + @PostMapping("update-status") + @ApiOperation("停用或启用") + public ResponseEntity updateStatus(@RequestBody ShopPrinterDTO dto) { + shopPrinterService.updateStatus(dto.getId(), dto.getStatus()); + return new ResponseEntity<>(HttpStatus.OK); + } +} diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/dto/shop/ShopPrinterDTO.java b/eladmin-system/src/main/java/cn/ysk/cashier/dto/shop/ShopPrinterDTO.java new file mode 100644 index 00000000..027342b6 --- /dev/null +++ b/eladmin-system/src/main/java/cn/ysk/cashier/dto/shop/ShopPrinterDTO.java @@ -0,0 +1,67 @@ +package cn.ysk.cashier.dto.shop; + +import lombok.Data; + +import java.io.Serializable; +import java.text.SimpleDateFormat; +import java.util.Date; + +/** + * 店铺打印机配置 + * + * @author tankaikai + * @since 2024-09-24 17:13 + */ +@Data +public class ShopPrinterDTO implements Serializable { + private static final long serialVersionUID = 1L; + + private Integer id; + + private String name; + + private String type; + + private String connectionType; + + private String address; + + private String port; + + private String subType; + + private Integer status; + + private String shopId; + + private String categoryIds; + + private String contentType; + + private String createdAt; + + private String updatedAt; + + private Integer sort; + + private String vendorId; + + private String productId; + private String config; + + public String getCreatedAt() { + if("".equals(createdAt) || createdAt == null){ + return ""; + } + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + return sdf.format(new Date(Long.valueOf(createdAt))); + } + + public String getUpdatedAt() { + if("".equals(updatedAt) || updatedAt == null){ + return ""; + } + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + return sdf.format(new Date(Long.valueOf(updatedAt))); + } +} diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/mapper/TbPrintMachineMapper.java b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/mapper/TbPrintMachineMapper.java new file mode 100644 index 00000000..ed77ce9a --- /dev/null +++ b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/mapper/TbPrintMachineMapper.java @@ -0,0 +1,14 @@ +package cn.ysk.cashier.mybatis.mapper; + +import cn.ysk.cashier.pojo.shop.TbPrintMachineEntity; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Mapper; + +/** + * 店铺打印机配置 + * @author tankaikai + * @since 2024-09-25 11:47 + */ +@Mapper +public interface TbPrintMachineMapper extends BaseMapper { +} diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/pojo/shop/TbPrintMachineEntity.java b/eladmin-system/src/main/java/cn/ysk/cashier/pojo/shop/TbPrintMachineEntity.java new file mode 100644 index 00000000..710660f5 --- /dev/null +++ b/eladmin-system/src/main/java/cn/ysk/cashier/pojo/shop/TbPrintMachineEntity.java @@ -0,0 +1,45 @@ +package cn.ysk.cashier.pojo.shop; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import java.io.Serializable; + +/** + * 店铺打印机配置 + * + * @author tankaikai + * @since 2024-09-25 11:49 + */ +@Data +@TableName("tb_print_machine") +public class TbPrintMachineEntity implements Serializable { + private static final long serialVersionUID = 1L; + /** + * id + */ + @TableId(type = IdType.AUTO) + private Integer id; + + private String name; + + private String type; + private String connectionType; + private String address; + private String port; + private String subType; + private Integer status; + private String shopId; + private String categoryIds; + private String contentType; + private String config; + private Long createdAt; + private Long updatedAt; + private String categoryList; + private Integer sort; + private String vendorId; + private String productId; + +} diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/shopimpl/ShopPrinterServiceImpl.java b/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/shopimpl/ShopPrinterServiceImpl.java new file mode 100644 index 00000000..4f52b5f1 --- /dev/null +++ b/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/shopimpl/ShopPrinterServiceImpl.java @@ -0,0 +1,128 @@ +package cn.ysk.cashier.service.impl.shopimpl; + +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.bean.copier.CopyOptions; +import cn.hutool.core.convert.Convert; +import cn.hutool.core.map.MapProxy; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import cn.ysk.cashier.dto.shop.ShopPrinterDTO; +import cn.ysk.cashier.mybatis.mapper.TbPrintMachineMapper; +import cn.ysk.cashier.pojo.shop.TbPrintMachineEntity; +import cn.ysk.cashier.service.shop.ShopPrinterService; +import cn.ysk.cashier.utils.PageUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +import java.util.List; +import java.util.Map; + +/** + * 店铺打印机配置ServiceImpl + * + * @author tankaikai + * @since 2024-09-25 13:53 + */ +@Slf4j +@Service +@RequiredArgsConstructor +public class ShopPrinterServiceImpl extends ServiceImpl implements ShopPrinterService { + + private QueryWrapper getWrapper(Map params) { + + MapProxy mapProxy = MapProxy.create(params); + QueryWrapper wrapper = new QueryWrapper<>(); + + String shopId = mapProxy.getStr("shopId"); + wrapper.lambda().eq(StrUtil.isNotEmpty(shopId), TbPrintMachineEntity::getShopId, shopId); + String name = mapProxy.getStr("name"); + wrapper.lambda().likeRight(StrUtil.isNotEmpty(name), TbPrintMachineEntity::getName, name); + String type = mapProxy.getStr("type"); + wrapper.lambda().eq(StrUtil.isNotEmpty(type), TbPrintMachineEntity::getType, type); + String connectionType = mapProxy.getStr("connectionType"); + wrapper.lambda().eq(StrUtil.isNotEmpty(connectionType), TbPrintMachineEntity::getConnectionType, connectionType); + String address = mapProxy.getStr("address"); + wrapper.lambda().eq(StrUtil.isNotEmpty(address), TbPrintMachineEntity::getAddress, address); + String port = mapProxy.getStr("port"); + wrapper.lambda().eq(StrUtil.isNotEmpty(port), TbPrintMachineEntity::getPort, port); + String subType = mapProxy.getStr("subType"); + wrapper.lambda().eq(StrUtil.isNotEmpty(subType), TbPrintMachineEntity::getSubType, subType); + Integer status = mapProxy.getInt("status"); + wrapper.lambda().eq(ObjectUtil.isNotNull(status), TbPrintMachineEntity::getStatus, status); + String categoryIds = mapProxy.getStr("categoryIds"); + wrapper.lambda().eq(StrUtil.isNotEmpty(categoryIds), TbPrintMachineEntity::getCategoryIds, categoryIds); + String contentType = mapProxy.getStr("contentType"); + wrapper.lambda().eq(StrUtil.isNotEmpty(contentType), TbPrintMachineEntity::getContentType, contentType); + String config = mapProxy.getStr("config"); + wrapper.lambda().eq(StrUtil.isNotEmpty(config), TbPrintMachineEntity::getConfig, config); + String categoryList = mapProxy.getStr("categoryList"); + wrapper.lambda().eq(StrUtil.isNotEmpty(categoryList), TbPrintMachineEntity::getCategoryList, categoryList); + String vendorId = mapProxy.getStr("vendorId"); + wrapper.lambda().eq(StrUtil.isNotEmpty(vendorId), TbPrintMachineEntity::getVendorId, vendorId); + String productId = mapProxy.getStr("productId"); + wrapper.lambda().eq(StrUtil.isNotEmpty(productId), TbPrintMachineEntity::getProductId, productId); + + wrapper.lambda().orderByAsc(TbPrintMachineEntity::getSort); + wrapper.lambda().orderByDesc(TbPrintMachineEntity::getId); + + return wrapper; + } + + @Override + public Map page(Map params) { + MapProxy mapProxy = MapProxy.create(params); + int pageNum = mapProxy.getInt("page", 1); + int pageSize = mapProxy.getInt("size", 10); + Page page = baseMapper.selectPage(new Page<>(pageNum, pageSize), getWrapper(params)); + List list = BeanUtil.copyToList(page.getRecords(), ShopPrinterDTO.class); + return PageUtil.toPlusPage(list, Convert.toInt(page.getTotal())); + } + + @Override + public List list(Map params) { + List list = baseMapper.selectList(getWrapper(params)); + return BeanUtil.copyToList(list, ShopPrinterDTO.class); + } + + @Override + public ShopPrinterDTO get(Integer id) { + TbPrintMachineEntity entity = baseMapper.selectById(id); + return BeanUtil.toBean(entity, ShopPrinterDTO.class); + } + + @Override + public void save(ShopPrinterDTO dto) { + CopyOptions options = new CopyOptions(); + options.setIgnoreProperties("createdAt", "updatedAt"); + TbPrintMachineEntity entity = BeanUtil.toBean(dto, TbPrintMachineEntity.class, options); + entity.setCreatedAt(System.currentTimeMillis()); + entity.setUpdatedAt(System.currentTimeMillis()); + baseMapper.insert(entity); + } + + @Override + public void update(ShopPrinterDTO dto) { + TbPrintMachineEntity entity = baseMapper.selectById(dto.getId()); + CopyOptions options = new CopyOptions(); + options.setIgnoreProperties("createdAt", "updatedAt"); + BeanUtil.copyProperties(dto, entity, options); + entity.setUpdatedAt(System.currentTimeMillis()); + baseMapper.updateById(entity); + } + + @Override + public void delete(Integer id) { + baseMapper.deleteById(id); + } + + @Override + public void updateStatus(Integer id, Integer status) { + baseMapper.update(null, new LambdaUpdateWrapper() + .set(TbPrintMachineEntity::getStatus, status).eq(TbPrintMachineEntity::getId, id)); + } +} diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/service/shop/ShopPrinterService.java b/eladmin-system/src/main/java/cn/ysk/cashier/service/shop/ShopPrinterService.java new file mode 100644 index 00000000..88d59288 --- /dev/null +++ b/eladmin-system/src/main/java/cn/ysk/cashier/service/shop/ShopPrinterService.java @@ -0,0 +1,31 @@ +package cn.ysk.cashier.service.shop; + +import cn.ysk.cashier.dto.shop.ShopPrinterDTO; +import cn.ysk.cashier.pojo.shop.TbPrintMachineEntity; +import com.baomidou.mybatisplus.extension.service.IService; + +import java.util.List; +import java.util.Map; + +/** + * 店铺打印机配置Service + * @author tankaikai + * @since 2024-09-24 17:15 + */ +public interface ShopPrinterService extends IService { + + Map page(Map params); + + List list(Map params); + + ShopPrinterDTO get(Integer id); + + void save(ShopPrinterDTO dto); + + void update(ShopPrinterDTO dto); + + void delete(Integer id); + + void updateStatus(Integer id,Integer status); + +} diff --git a/eladmin-system/src/main/resources/mapper/TbPrintMachineMapper.xml b/eladmin-system/src/main/resources/mapper/TbPrintMachineMapper.xml new file mode 100644 index 00000000..7a8c6eb3 --- /dev/null +++ b/eladmin-system/src/main/resources/mapper/TbPrintMachineMapper.xml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file