diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/controller/ProductController.java b/src/main/java/com/chaozhanggui/system/cashierservice/controller/ProductController.java index ff8df6d..804ca85 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/controller/ProductController.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/controller/ProductController.java @@ -1,12 +1,14 @@ package com.chaozhanggui.system.cashierservice.controller; +import com.alibaba.fastjson.JSONObject; import com.chaozhanggui.system.cashierservice.entity.dto.ProductStatusDTO; import com.chaozhanggui.system.cashierservice.entity.dto.ProductStockDTO; import com.chaozhanggui.system.cashierservice.entity.dto.QuerySpecDTO; import com.chaozhanggui.system.cashierservice.service.ProductService; import com.chaozhanggui.system.cashierservice.sign.CodeEnum; import com.chaozhanggui.system.cashierservice.sign.Result; +import com.chaozhanggui.system.cashierservice.util.TokenUtil; import lombok.extern.slf4j.Slf4j; import org.apache.ibatis.annotations.Param; import org.springframework.beans.factory.annotation.Autowired; @@ -36,9 +38,12 @@ public class ProductController { @PutMapping("/productStock") public Result productStock( + @RequestHeader("token") String token, @Valid @RequestBody ProductStockDTO productStockDTO ) { - productService.updateStock(productStockDTO); + JSONObject jsonObject = TokenUtil.parseParamFromToken(token); + String loginName = jsonObject.getString("loginName"); + productService.updateStock(productStockDTO,loginName); return Result.success(CodeEnum.SUCCESS); } diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/controller/ShopPrinterController.java b/src/main/java/com/chaozhanggui/system/cashierservice/controller/ShopPrinterController.java new file mode 100644 index 0000000..2a4f16e --- /dev/null +++ b/src/main/java/com/chaozhanggui/system/cashierservice/controller/ShopPrinterController.java @@ -0,0 +1,70 @@ +package com.chaozhanggui.system.cashierservice.controller; + +import com.chaozhanggui.system.cashierservice.entity.dto.ShopPrinterDTO; +import com.chaozhanggui.system.cashierservice.service.ShopPrinterService; +import com.chaozhanggui.system.cashierservice.sign.CodeEnum; +import com.chaozhanggui.system.cashierservice.sign.Result; +import com.github.pagehelper.PageInfo; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.util.List; +import java.util.Map; + +/** + * 店铺打印机配置 + * @author tankaikai + * @since 2024-09-24 16:56 + */ +@Slf4j +@RestController +@CrossOrigin(origins = "*") +@RequestMapping("shop-config/printer") +public class ShopPrinterController { + + @Resource + private ShopPrinterService shopPrinterService; + + @GetMapping("page") + public Result page(@RequestParam Map params) { + PageInfo page = shopPrinterService.page(params); + return Result.success(CodeEnum.SUCCESS,page); + } + + @GetMapping("list") + public Result list(@RequestParam Map params) { + List list = shopPrinterService.list(params); + return Result.success(CodeEnum.SUCCESS,list); + } + + @GetMapping("{id}") + public Result get(@PathVariable("id") Integer id) { + ShopPrinterDTO dto = shopPrinterService.get(id); + return Result.success(CodeEnum.SUCCESS,dto); + } + + @PostMapping + public Result save(@RequestBody ShopPrinterDTO dto) { + shopPrinterService.save(dto); + return Result.success(CodeEnum.SUCCESS); + } + + @PutMapping + public Result update(@RequestBody ShopPrinterDTO dto) { + shopPrinterService.update(dto); + return Result.success(CodeEnum.SUCCESS); + } + + @DeleteMapping("{id}") + public Result delete(@PathVariable("id") Integer id){ + shopPrinterService.delete(id); + return Result.success(CodeEnum.SUCCESS); + } + + @PostMapping("update-status") + public Result updateStatus(@RequestBody ShopPrinterDTO dto){ + shopPrinterService.updateStatus(dto.getId(),dto.getStatus()); + return Result.success(CodeEnum.SUCCESS); + } +} diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/dao/ShopPrinterServiceMapper.java b/src/main/java/com/chaozhanggui/system/cashierservice/dao/ShopPrinterServiceMapper.java new file mode 100644 index 0000000..58084e9 --- /dev/null +++ b/src/main/java/com/chaozhanggui/system/cashierservice/dao/ShopPrinterServiceMapper.java @@ -0,0 +1,19 @@ +package com.chaozhanggui.system.cashierservice.dao; + +import com.chaozhanggui.system.cashierservice.entity.dto.ShopPrinterDTO; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; +import java.util.Map; + +/** + * @author tankaikai + * @since 2024-09-24 17:25 + */ +@Mapper +public interface ShopPrinterServiceMapper { + List getList(Map params); + + int updateStatus(@Param("id") Integer id, @Param("status") Integer status); +} diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/entity/TbShopUser.java b/src/main/java/com/chaozhanggui/system/cashierservice/entity/TbShopUser.java index 5b8ec22..c53f7b4 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/entity/TbShopUser.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/entity/TbShopUser.java @@ -2,6 +2,7 @@ package com.chaozhanggui.system.cashierservice.entity; import java.io.Serializable; import java.math.BigDecimal; +import java.util.Date; public class TbShopUser implements Serializable { private Integer id; @@ -61,6 +62,7 @@ public class TbShopUser implements Serializable { private Long updatedAt; private String miniOpenId; + private Date joinTime; private static final long serialVersionUID = 1L; @@ -295,4 +297,12 @@ public class TbShopUser implements Serializable { public void setDynamicCode(String dynamicCode) { this.dynamicCode = dynamicCode; } + + public Date getJoinTime() { + return joinTime; + } + + public void setJoinTime(Date joinTime) { + this.joinTime = joinTime; + } } diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/entity/dto/ShopPrinterDTO.java b/src/main/java/com/chaozhanggui/system/cashierservice/entity/dto/ShopPrinterDTO.java new file mode 100644 index 0000000..fd2aca7 --- /dev/null +++ b/src/main/java/com/chaozhanggui/system/cashierservice/entity/dto/ShopPrinterDTO.java @@ -0,0 +1,64 @@ +package com.chaozhanggui.system.cashierservice.entity.dto; + +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() { + 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/src/main/java/com/chaozhanggui/system/cashierservice/service/MemberService.java b/src/main/java/com/chaozhanggui/system/cashierservice/service/MemberService.java index 293ecb5..7e4dc58 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/service/MemberService.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/service/MemberService.java @@ -143,6 +143,7 @@ public class MemberService { tbShopUser.setLevel(Byte.parseByte(String.valueOf(map.get("level")))); tbShopUser.setIsVip(Byte.parseByte("1")); tbShopUser.setUpdatedAt(System.currentTimeMillis()); + tbShopUser.setJoinTime(new Date()); tbShopUserMapper.updateByPrimaryKeySelective(tbShopUser); return Result.success(CodeEnum.SUCCESS); } @@ -168,6 +169,7 @@ public class MemberService { tbShopUser.setCode(code); tbShopUser.setIsVip(Byte.parseByte("1")); tbShopUser.setCreatedAt(System.currentTimeMillis()); + tbShopUser.setJoinTime(new Date()); tbShopUserMapper.insert(tbShopUser); return Result.success(CodeEnum.SUCCESS); } diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/service/ProductService.java b/src/main/java/com/chaozhanggui/system/cashierservice/service/ProductService.java index a0cde46..fc725b5 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/service/ProductService.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/service/ProductService.java @@ -196,7 +196,7 @@ public class ProductService { } } - public void updateStock(ProductStockDTO productStockDTO) { + public void updateStock(ProductStockDTO productStockDTO,String loginName) { TbProduct product = tbProductMapper.selectByShopIdAndId(productStockDTO.getProductId(), productStockDTO.getShopId()); if (product == null) { throw new MsgException("商品不存在"); @@ -204,7 +204,7 @@ public class ProductService { if (product.getIsDistribute() != 1 && product.getTypeEnum().equals("sku")) { throw new MsgException("多规格非共享商品暂不支持修改库存"); - }else { + } else { tbProductMapper.updateStock(productStockDTO.getShopId(), productStockDTO.getProductId(), productStockDTO.getStock()); tbProductSkuMapper.updateStock(productStockDTO.getShopId(), productStockDTO.getProductId(), productStockDTO.getStock()); @@ -213,9 +213,16 @@ public class ProductService { data.put("shopId", productStockDTO.getShopId()); data.put("skuId", tbProductSkus.isEmpty() ? null : tbProductSkus.get(0).getId()); data.put("productId", productStockDTO.getProductId()); - data.put("type", "pc收银机修改库存"); +// data.put("type", "pc收银机修改库存"); data.put("subType", product.getStockNumber() > productStockDTO.getStock() ? -1 : 1); - data.put("number",productStockDTO.getStock() - product.getStockNumber()); + data.put("number", productStockDTO.getStock() - product.getStockNumber()); + data.put("operator", loginName); + data.put("remark", "pc收银机修改库存"); + if (product.getStockNumber() > productStockDTO.getStock()) { + data.put("type", "盘点出库"); + }else { + data.put("type", "盘点入库"); + } producer.sendStockRecordMsg(data); } } diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/service/ShopPrinterService.java b/src/main/java/com/chaozhanggui/system/cashierservice/service/ShopPrinterService.java new file mode 100644 index 0000000..45e425c --- /dev/null +++ b/src/main/java/com/chaozhanggui/system/cashierservice/service/ShopPrinterService.java @@ -0,0 +1,30 @@ +package com.chaozhanggui.system.cashierservice.service; + +import com.chaozhanggui.system.cashierservice.entity.dto.ShopPrinterDTO; +import com.github.pagehelper.PageInfo; + +import java.util.List; +import java.util.Map; + +/** + * 打印机配置 + * @author tankaikai + * @since 2024-09-24 17:15 + */ +public interface ShopPrinterService { + + PageInfo 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/src/main/java/com/chaozhanggui/system/cashierservice/service/impl/ShopPrinterServiceImpl.java b/src/main/java/com/chaozhanggui/system/cashierservice/service/impl/ShopPrinterServiceImpl.java new file mode 100644 index 0000000..30be7e5 --- /dev/null +++ b/src/main/java/com/chaozhanggui/system/cashierservice/service/impl/ShopPrinterServiceImpl.java @@ -0,0 +1,79 @@ +package com.chaozhanggui.system.cashierservice.service.impl; + +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.map.MapProxy; +import com.chaozhanggui.system.cashierservice.dao.ShopPrinterServiceMapper; +import com.chaozhanggui.system.cashierservice.dao.TbPrintMachineMapper; +import com.chaozhanggui.system.cashierservice.entity.TbPrintMachineWithBLOBs; +import com.chaozhanggui.system.cashierservice.entity.dto.ShopPrinterDTO; +import com.chaozhanggui.system.cashierservice.service.ShopPrinterService; +import com.github.pagehelper.PageHelper; +import com.github.pagehelper.PageInfo; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; +import java.util.Map; + +/** + * 店铺打印配置 + * + * @author tankaikai + * @since 2024-09-24 17:23 + */ +@Service +public class ShopPrinterServiceImpl implements ShopPrinterService { + + @Resource + private ShopPrinterServiceMapper shopPrinterServiceMapper; + + @Resource + private TbPrintMachineMapper tbPrintMachineMapper; + + @Override + public PageInfo page(Map params) { + MapProxy mapProxy = MapProxy.create(params); + Integer pageNum = mapProxy.getInt("pageNum"); + Integer pageSize = mapProxy.getInt("pageSize"); + PageInfo pageInfo = PageHelper.startPage(pageNum, pageSize).doSelectPageInfo(() -> shopPrinterServiceMapper.getList(params)); + return pageInfo; + } + + @Override + public List list(Map params) { + return shopPrinterServiceMapper.getList(params); + } + + @Override + public ShopPrinterDTO get(Integer id) { + TbPrintMachineWithBLOBs entity = tbPrintMachineMapper.selectByPrimaryKey(id); + return BeanUtil.toBean(entity, ShopPrinterDTO.class); + } + + @Override + public void save(ShopPrinterDTO dto) { + TbPrintMachineWithBLOBs entity = new TbPrintMachineWithBLOBs(); + BeanUtil.copyProperties(dto, entity, "createdAt", "updatedAt"); + entity.setCreatedAt(System.currentTimeMillis()); + entity.setUpdatedAt(System.currentTimeMillis()); + tbPrintMachineMapper.insert(entity); + } + + @Override + public void update(ShopPrinterDTO dto) { + TbPrintMachineWithBLOBs entity = tbPrintMachineMapper.selectByPrimaryKey(dto.getId()); + BeanUtil.copyProperties(dto, entity, "createdAt", "updatedAt"); + entity.setUpdatedAt(System.currentTimeMillis()); + tbPrintMachineMapper.updateByPrimaryKeyWithBLOBs(entity); + } + + @Override + public void delete(Integer id) { + tbPrintMachineMapper.deleteByPrimaryKey(id); + } + + @Override + public void updateStatus(Integer id, Integer status) { + shopPrinterServiceMapper.updateStatus(id, status); + } +} diff --git a/src/main/resources/mapper/ShopPrinterMapper.xml b/src/main/resources/mapper/ShopPrinterMapper.xml new file mode 100644 index 0000000..d091136 --- /dev/null +++ b/src/main/resources/mapper/ShopPrinterMapper.xml @@ -0,0 +1,65 @@ + + + + + + + id, name, type, connection_type, address, port, sub_type, status, shop_id, category_ids, content_type, created_at, updated_at, sort, vendor_id, product_id + + + config, category_list + + + + + + update tb_print_machine set status = #{status} where id = #{id} + + + \ No newline at end of file diff --git a/src/main/resources/mapper/TbShopUserMapper.xml b/src/main/resources/mapper/TbShopUserMapper.xml index d35ed59..8565913 100644 --- a/src/main/resources/mapper/TbShopUserMapper.xml +++ b/src/main/resources/mapper/TbShopUserMapper.xml @@ -32,12 +32,13 @@ + id, amount, credit_amount, consume_amount, consume_number, level_consume, status, merchant_id, shop_id, user_id, parent_id, parent_level, name, head_img, sex, birth_day, telephone, is_vip, code, is_attention, attention_at, is_shareholder, level, distribute_type, - sort, created_at, updated_at, mini_open_id,dynamic_code + sort, created_at, updated_at, mini_open_id,dynamic_code,join_time