Merge remote-tracking branch 'origin/master'

This commit is contained in:
Tankaikai 2025-03-07 10:31:29 +08:00
commit f12d03e768
28 changed files with 729 additions and 7 deletions

View File

@ -1,8 +1,20 @@
package com.czg.controller.admin;
import com.czg.account.dto.msg.ShopMsgEditDTO;
import com.czg.account.dto.msg.ShopPushOpenIdEditDTO;
import com.czg.account.entity.ShopPushOpenId;
import com.czg.account.service.ShopMsgStateService;
import com.czg.account.service.ShopPushOpenIdService;
import com.czg.annotation.SaAdminCheckPermission;
import com.czg.resp.CzgResult;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.czg.sa.StpKit;
import com.mybatisflex.core.query.QueryWrapper;
import jakarta.annotation.Resource;
import org.springframework.http.ResponseEntity;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* 店铺消息推送相关
@ -11,4 +23,71 @@ import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/admin/shopMsgPush")
public class ShopMsgPushController {
@Resource
private ShopMsgStateService shopMsgStateService;
@Resource
private ShopPushOpenIdService shopPushOpenIdService;
/**
* 店铺推送状态获取
*/
@SaAdminCheckPermission("shopMsgPush:state:list")
@GetMapping("/shopState")
public CzgResult<?> get() {
return CzgResult.success(shopMsgStateService.getState(StpKit.USER.getShopId()));
}
/**
* 店铺推送状态修改
* @param shopMsgEditDTO 修改嘻嘻你
* @return 是否成功
*/
@SaAdminCheckPermission("shopMsgPush:state:edit")
@PutMapping("/shopState")
public CzgResult<Boolean> edit(@RequestBody @Validated ShopMsgEditDTO shopMsgEditDTO) {
return CzgResult.success(shopMsgStateService.edit(StpKit.USER.getShopId(), shopMsgEditDTO));
}
/**
* 订阅用户列表
* @return 分页数据
*/
@SaAdminCheckPermission("shopMsgPush:list")
@GetMapping
public CzgResult<List<ShopPushOpenId>> allInfo() {
return CzgResult.success(shopPushOpenIdService.pageInfo(StpKit.USER.getShopId()));
}
/**
* 订阅解绑
* @param openId 唯一推送标识
* @return 是否成功
*/
@SaAdminCheckPermission("shopMsgPush:del")
@DeleteMapping
public CzgResult<Boolean> unbind(@RequestParam String openId) {
return CzgResult.success(shopPushOpenIdService.remove(new QueryWrapper().eq(ShopPushOpenId::getShopId, StpKit.USER.getShopId()).eq(ShopPushOpenId::getOpenId, openId)));
}
/**
* 推送状态修改
* @param shopPushOpenIdEditDTO 修改信息
* @return 是否成功
*/
@SaAdminCheckPermission("shopMsgPush:edit")
@PutMapping
public CzgResult<Boolean> edit(@RequestBody @Validated ShopPushOpenIdEditDTO shopPushOpenIdEditDTO) {
return CzgResult.success(shopPushOpenIdService.edit(StpKit.USER.getShopId(), shopPushOpenIdEditDTO));
}
/**
* 获取订阅二维码
* @return 二维码信息
* @throws Exception 异常
*/
@SaAdminCheckPermission("shopMsgPush:code")
@GetMapping("/code")
public CzgResult<String> getCoed() throws Exception {
return CzgResult.success(shopMsgStateService.getCode(StpKit.USER.getShopId()));
}
}

View File

@ -0,0 +1,24 @@
package com.czg.controller.admin;
import com.czg.account.service.ShopProdStatisticService;
import com.czg.resp.CzgResult;
import com.czg.sa.StpKit;
import jakarta.annotation.Resource;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @author Administrator
*/
@RestController
@RequestMapping("/admin/statistic")
public class ShopStatisticController {
@Resource
private ShopProdStatisticService shopProdStatisticService;
@GetMapping("/prod")
public CzgResult<?> getProduct(String name, String categoryId, String startTime, String endTime) {
return CzgResult.success(shopProdStatisticService.pageInfo(StpKit.USER.getShopId(), name, categoryId, startTime, endTime));
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

View File

@ -81,7 +81,7 @@ public class PrintMqListener {
.eq(PrintMachine::getStatus, 1)
.eq(PrintMachine::getShopId, shopId)
.eq(PrintMachine::getSubType, subType)
.eq(PrintMachine::getConnectionType, "network");
.eq(PrintMachine::getConnectionType, "网络");
if (StrUtil.isNotEmpty(printMethod)) {
wrapper.in(PrintMachine::getPrintMethod, Arrays.asList(printMethod, "all"));
}

View File

@ -0,0 +1,57 @@
package com.czg.account.dto;
import java.io.Serializable;
import java.time.LocalDateTime;
import com.alibaba.fastjson2.annotation.JSONField;
import java.io.Serial;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* 店铺消息推送设置 实体类
*
* @author zs
* @since 2025-03-07
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class ShopMsgStateDTO implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
private Long id;
/**
* 店铺id
*/
private Long shopId;
/**
* 类型 -1 所有消息 0库存预警 1 耗材预警 2 操作预警
*/
private Integer type;
/**
* 0关闭推送 1开启推送
*/
private Integer state;
/**
* 创建时间
*/
@JSONField(format = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime createTime;
/**
* 修改时间
*/
@JSONField(format = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime updateTime;
}

View File

@ -0,0 +1,65 @@
package com.czg.account.dto;
import java.io.Serializable;
import java.math.BigDecimal;
import java.sql.Date;
import java.io.Serial;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* 实体类
*
* @author zs
* @since 2025-03-06
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class ShopProdStatisticDTO implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
private Long id;
/**
* 商品id
*/
private Long prodId;
/**
* 销售数量
*/
private Long saleNum;
/**
* 销售金额
*/
private BigDecimal saleAmount;
/**
* 退单量
*/
private Long refundNum;
/**
* 退单金额
*/
private BigDecimal refundAmount;
/**
* 店铺id
*/
private Long shopId;
/**
* 创建时间
*/
private Date createDay;
}

View File

@ -0,0 +1,18 @@
package com.czg.account.dto.msg;
import lombok.Data;
/**
* @author Administrator
*/
@Data
public class ShopMsgEditDTO {
/**
* 类型 -1 所有消息 0库存预警 1 耗材预警 2 操作预警
*/
private Integer type;
/**
* 0关闭 1开启
*/
private Integer state;
}

View File

@ -0,0 +1,27 @@
package com.czg.account.dto.msg;
import jakarta.validation.constraints.NotEmpty;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
import java.util.List;
/**
* @author Administrator
*/
@Data
public class ShopPushOpenIdEditDTO {
/**
* openId
*/
@NotEmpty(message = "openId不为空")
private String openId;
/**
* 类型 耗材推送 con 商品推送 pro 操作预警 ope
*/
@NotEmpty(message = "typeInfo不为空")
private List<String> typeInfo;
private Integer status;
}

View File

@ -0,0 +1,63 @@
package com.czg.account.entity;
import com.mybatisflex.annotation.Column;
import com.mybatisflex.annotation.Id;
import com.mybatisflex.annotation.KeyType;
import com.mybatisflex.annotation.Table;
import java.io.Serializable;
import java.time.LocalDateTime;
import java.io.Serial;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* 店铺消息推送设置 实体类
*
* @author zs
* @since 2025-03-07
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Table("tb_shop_msg_state")
public class ShopMsgState implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
@Id(keyType = KeyType.Auto)
private Long id;
/**
* 店铺id
*/
private Long shopId;
/**
* 类型 -1 所有消息 0库存预警 1 耗材预警 2 操作预警
*/
private Integer type;
/**
* 0关闭推送 1开启推送
*/
private Integer state;
/**
* 创建时间
*/
@Column(onInsertValue = "now()")
private LocalDateTime createTime;
/**
* 修改时间
*/
@Column(onInsertValue = "now()", onUpdateValue = "now()")
private LocalDateTime updateTime;
}

View File

@ -0,0 +1,71 @@
package com.czg.account.entity;
import com.mybatisflex.annotation.Id;
import com.mybatisflex.annotation.KeyType;
import com.mybatisflex.annotation.Table;
import java.io.Serializable;
import java.math.BigDecimal;
import java.sql.Date;
import java.io.Serial;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* 实体类
*
* @author zs
* @since 2025-03-06
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Table("tb_shop_prod_statistic")
public class ShopProdStatistic implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
@Id(keyType = KeyType.Auto)
private Long id;
/**
* 商品id
*/
private Long prodId;
/**
* 销售数量
*/
private Long saleNum;
/**
* 销售金额
*/
private BigDecimal saleAmount;
/**
* 退单量
*/
private Long refundNum;
/**
* 退单金额
*/
private BigDecimal refundAmount;
/**
* 店铺id
*/
private Long shopId;
/**
* 创建时间
*/
private Date createDay;
}

View File

@ -1,5 +1,6 @@
package com.czg.account.entity;
import com.alibaba.fastjson2.annotation.JSONField;
import com.mybatisflex.annotation.Column;
import com.mybatisflex.annotation.Id;
import com.mybatisflex.annotation.KeyType;
@ -8,6 +9,7 @@ import java.io.Serializable;
import java.time.LocalDateTime;
import java.io.Serial;
import java.util.List;
import lombok.AllArgsConstructor;
import lombok.Builder;
@ -48,7 +50,7 @@ public class ShopPushOpenId implements Serializable {
/**
* 状态 1 正常 0 禁用
*/
private String status;
private Integer status;
/**
* 创建时间
@ -62,4 +64,17 @@ public class ShopPushOpenId implements Serializable {
@Column(onInsertValue = "now()", onUpdateValue = "now()")
private LocalDateTime updateTime;
/**
* 可推送类型 json字符串 耗材推送 conState 商品推送 proState 操作预警 allState
*/
private Object typeInfo;
/**
* 昵称
*/
private String nickname;
/**
* 头像
*/
private String avatar;
}

View File

@ -0,0 +1,22 @@
package com.czg.account.service;
import com.czg.account.dto.msg.ShopMsgEditDTO;
import com.mybatisflex.core.service.IService;
import com.czg.account.entity.ShopMsgState;
import java.util.HashMap;
/**
* 店铺消息推送设置 服务层
*
* @author zs
* @since 2025-03-07
*/
public interface ShopMsgStateService extends IService<ShopMsgState> {
HashMap<String, Object> getState(Long shopId);
Boolean edit(Long shopId, ShopMsgEditDTO shopMsgEditDTO);
String getCode(Long shopId) throws Exception;
}

View File

@ -0,0 +1,16 @@
package com.czg.account.service;
import com.mybatisflex.core.paginate.Page;
import com.mybatisflex.core.service.IService;
import com.czg.account.entity.ShopProdStatistic;
/**
* 服务层
*
* @author zs
* @since 2025-03-06
*/
public interface ShopProdStatisticService extends IService<ShopProdStatistic> {
Page<?> pageInfo(Long shopId, String name, String classifyId, String startTime, String endTime);
}

View File

@ -1,8 +1,11 @@
package com.czg.account.service;
import com.czg.account.dto.msg.ShopPushOpenIdEditDTO;
import com.mybatisflex.core.service.IService;
import com.czg.account.entity.ShopPushOpenId;
import java.util.List;
/**
* 用户推送信息表 服务层
*
@ -11,4 +14,8 @@ import com.czg.account.entity.ShopPushOpenId;
*/
public interface ShopPushOpenIdService extends IService<ShopPushOpenId> {
List<ShopPushOpenId> pageInfo(Long shopId);
Boolean edit(Long shopId, ShopPushOpenIdEditDTO shopPushOpenIdEditDTO);
}

View File

@ -0,0 +1,14 @@
package com.czg.account.vo;
import com.czg.account.entity.ShopProdStatistic;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* @author Administrator
*/
@EqualsAndHashCode(callSuper = true)
@Data
public class ShopProdStatisticVO extends ShopProdStatistic {
private String name;
}

View File

@ -0,0 +1,16 @@
package com.czg.account.vo;
import lombok.Data;
/**
* @author Administrator
*/
@Data
public class ShopPushOpenIdVO {
private Integer allState;
private Integer conState;
private Integer opeState;
private Integer proState;
private String nickname;
private String avatar;
}

View File

@ -0,0 +1,14 @@
package com.czg.service.account.mapper;
import com.mybatisflex.core.BaseMapper;
import com.czg.account.entity.ShopMsgState;
/**
* 店铺消息推送设置 映射层
*
* @author zs
* @since 2025-03-07
*/
public interface ShopMsgStateMapper extends BaseMapper<ShopMsgState> {
}

View File

@ -0,0 +1,20 @@
package com.czg.service.account.mapper;
import com.czg.account.vo.ShopProdStatisticVO;
import com.mybatisflex.core.BaseMapper;
import com.czg.account.entity.ShopProdStatistic;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 映射层
*
* @author zs
* @since 2025-03-06
*/
public interface ShopProdStatisticMapper extends BaseMapper<ShopProdStatistic> {
List<ShopProdStatisticVO> pageInfo(@Param("shopId") Long shopId, @Param("name") String name, @Param("classifyId") String classifyId,
@Param("startTime") String startTime, @Param("endTime") String endTime);
}

View File

@ -1,8 +1,11 @@
package com.czg.service.account.mapper;
import com.czg.account.vo.ShopPushOpenIdVO;
import com.mybatisflex.core.BaseMapper;
import com.czg.account.entity.ShopPushOpenId;
import java.util.List;
/**
* 用户推送信息表 映射层
*
@ -11,4 +14,5 @@ import com.czg.account.entity.ShopPushOpenId;
*/
public interface ShopPushOpenIdMapper extends BaseMapper<ShopPushOpenId> {
List<ShopPushOpenIdVO> pageInfo(Long shopId);
}

View File

@ -0,0 +1,102 @@
package com.czg.service.account.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.extra.qrcode.QrCodeUtil;
import cn.hutool.extra.qrcode.QrConfig;
import com.czg.account.dto.msg.ShopMsgEditDTO;
import com.czg.service.account.util.AliOssUtil;
import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel;
import com.mybatisflex.spring.service.impl.ServiceImpl;
import com.czg.account.entity.ShopMsgState;
import com.czg.account.service.ShopMsgStateService;
import com.czg.service.account.mapper.ShopMsgStateMapper;
import jakarta.annotation.Resource;
import org.apache.commons.io.FilenameUtils;
import org.springframework.core.io.ResourceLoader;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Service;
import javax.imageio.ImageIO;
import java.io.ByteArrayOutputStream;
import java.io.InputStream;
import java.util.HashMap;
import java.util.List;
/**
* 店铺消息推送设置 服务层实现
*
* @author zs
* @since 2025-03-07
*/
@Service
public class ShopMsgStateServiceImpl extends ServiceImpl<ShopMsgStateMapper, ShopMsgState> implements ShopMsgStateService {
private static final HashMap<String, String> MSG_TYPE = new HashMap<>();
static {
MSG_TYPE.put("0", "stockState");
MSG_TYPE.put("1", "conState");
MSG_TYPE.put("2", "opeState");
MSG_TYPE.put("-1", "allState");
}
@Resource
private ResourceLoader resourceLoader;
@Resource
private AliOssUtil aliOssUtil;
@Override
public HashMap<String, Object> getState(Long shopId) {
List<ShopMsgState> list = queryChain().eq(ShopMsgState::getShopId, shopId).list();
HashMap<String, Object> data = new HashMap<>();
MSG_TYPE.forEach((k, v) -> {
ShopMsgState have = null;
for (ShopMsgState shopMsgState : list) {
if (shopMsgState.getType().equals(Integer.valueOf(k))) {
have = shopMsgState;
break;
}
}
if (have == null) {
ShopMsgState msgState = new ShopMsgState();
msgState.setShopId(shopId);
msgState.setCreateTime(DateUtil.date().toLocalDateTime());
msgState.setType(Integer.valueOf(k));
msgState.setState(0);
save(msgState);
}
data.put(v, have != null ? have.getState() : 0);
});
return data;
}
@Override
public Boolean edit(Long shopId, ShopMsgEditDTO shopMsgEditDTO) {
ShopMsgState msgState = queryChain().eq(ShopMsgState::getShopId, shopId).eq(ShopMsgState::getType, shopMsgEditDTO.getType()).one();
if (msgState == null) {
msgState = new ShopMsgState();
msgState.setShopId(shopId);
msgState.setCreateTime(DateUtil.date().toLocalDateTime());
msgState.setType(shopMsgEditDTO.getType());
msgState.setState(shopMsgEditDTO.getState());
return save(msgState);
}
BeanUtil.copyProperties(shopMsgEditDTO, msgState);
return updateById(msgState);
}
@Override
public String getCode(Long shopId) throws Exception {
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
org.springframework.core.io.Resource resource = resourceLoader.getResource("classpath:/static/logo.jpg");
InputStream inputStream = resource.getInputStream();
String url = StrUtil.format("https://invoice.sxczgkj.cn/index/wechat/weuserk?shopId={}", shopId);
QrCodeUtil.generate(url, new QrConfig(500, 500).
setImg(ImageIO.read(inputStream)).setErrorCorrection(ErrorCorrectionLevel.H).setRatio(4), "png", outputStream);
return aliOssUtil.uploadSuffix(outputStream.toByteArray(), "png");
}
}

View File

@ -0,0 +1,26 @@
package com.czg.service.account.service.impl;
import com.czg.utils.PageUtil;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.mybatisflex.core.paginate.Page;
import com.mybatisflex.spring.service.impl.ServiceImpl;
import com.czg.account.entity.ShopProdStatistic;
import com.czg.account.service.ShopProdStatisticService;
import com.czg.service.account.mapper.ShopProdStatisticMapper;
import org.springframework.stereotype.Service;
/**
* 服务层实现
*
* @author zs
* @since 2025-03-06
*/
@Service
public class ShopProdStatisticServiceImpl extends ServiceImpl<ShopProdStatisticMapper, ShopProdStatistic> implements ShopProdStatisticService{
@Override
public Page<?> pageInfo(Long shopId, String name, String classifyId, String startTime, String endTime) {
PageHelper.startPage(PageUtil.buildPageHelp());
return PageUtil.convert(new PageInfo<>(mapper.pageInfo(shopId, name, classifyId, startTime, endTime)));
}
}

View File

@ -1,11 +1,18 @@
package com.czg.service.account.service.impl;
import com.alibaba.fastjson2.JSONArray;
import com.alibaba.fastjson2.JSONObject;
import com.czg.account.dto.msg.ShopPushOpenIdEditDTO;
import com.czg.exception.ApiNotPrintException;
import com.mybatisflex.core.query.QueryWrapper;
import com.mybatisflex.spring.service.impl.ServiceImpl;
import com.czg.account.entity.ShopPushOpenId;
import com.czg.account.service.ShopPushOpenIdService;
import com.czg.service.account.mapper.ShopPushOpenIdMapper;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* 用户推送信息表 服务层实现
*
@ -15,4 +22,24 @@ import org.springframework.stereotype.Service;
@Service
public class ShopPushOpenIdServiceImpl extends ServiceImpl<ShopPushOpenIdMapper, ShopPushOpenId> implements ShopPushOpenIdService{
@Override
public List<ShopPushOpenId> pageInfo(Long shopId) {
// PageHelper.startPage(PageUtil.buildPageHelp());
// return PageUtil.convert(new PageInfo<>(mapper.pageInfo(shopId)));
List<ShopPushOpenId> list = list(new QueryWrapper().eq(ShopPushOpenId::getShopId, shopId));
list.forEach(item -> item.setTypeInfo(JSONArray.parseArray((String) item.getTypeInfo())));
return list;
}
@Override
public Boolean edit(Long shopId, ShopPushOpenIdEditDTO shopPushOpenIdEditDTO) {
ShopPushOpenId pushOpenId = queryChain().eq(ShopPushOpenId::getShopId, shopId).eq(ShopPushOpenId::getOpenId, shopPushOpenIdEditDTO.getOpenId()).one();
if (pushOpenId == null) {
throw new ApiNotPrintException("订阅用户不存在");
}
pushOpenId.setTypeInfo(JSONObject.toJSONString(shopPushOpenIdEditDTO.getTypeInfo()));
pushOpenId.setStatus(shopPushOpenIdEditDTO.getStatus());
return updateById(pushOpenId);
}
}

View File

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.czg.service.account.mapper.ShopMsgStateMapper">
</mapper>

View File

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.czg.service.account.mapper.ShopProdStatisticMapper">
<select id="pageInfo" resultType="com.czg.account.vo.ShopProdStatisticVO">
select * from tb_shop_prod_statistic as a
left join tb_product as b on a.prod_id=b.id
where a.shop_id=#{shopId} and b.name like and b.category_id=
</select>
</mapper>

View File

@ -4,4 +4,20 @@
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.czg.service.account.mapper.ShopPushOpenIdMapper">
<select id="pageInfo" resultType="com.czg.account.vo.ShopPushOpenIdVO">
select
nickname, avatar,
SUM(IF(type = 0, `status`, 0)) AS proState,
SUM(IF(type = 1, `status`, 0)) AS conState,
SUM(IF(type = 2, `status`, 0)) AS opeState,
SUM(IF(type = -1, `status`, 0)) AS allState
from tb_shop_push_open_id where shop_id=#{shopId}
<if test="nickName !=null and nickName != ''">
and nickname like concat('%', #{nickName} '%')
</if>
<if test="openId !=null and openId != ''">
and open_id like concat('%', #{openId} '%')
</if>
group by shop_id, open_id
</select>
</mapper>

View File

@ -43,7 +43,7 @@ public class FeiPrinter extends PrinterHandler implements PrinterImpl {
private static final String UKEY = "UfWkhXxSkeSSscsU";
public FeiPrinter() {
super("fePrinter");
super("飞鹅");
}
private final PrintSignLabel printSignLabel = new PrintSignLabel()

View File

@ -142,7 +142,7 @@ public abstract class PrinterHandler {
if (StrUtil.isBlank(printerBrand)) {
throw new RuntimeException("打印机品牌未赋值");
}
return printerBrand.equals(currentBrand) && "network".equals(connectType);
return printerBrand.equals(currentBrand) && "网络".equals(connectType);
}
protected List<OrderDetail> getCanPrintOrderDetails(boolean partPrint, Long orderId, List<OrderDetail> tbOrderDetailList, List<?> categoryIds) {

View File

@ -47,7 +47,7 @@ public class YxyPrinter extends PrinterHandler implements PrinterImpl {
private RestTemplate restTemplate;
public YxyPrinter() {
super("yxyPrinter");
super("云想印");
}
private PrintSignLabel printSignLabel = new PrintSignLabel()