From 59b1f0e9967902aa10f5e017d5a0bdfd1b60c9ea Mon Sep 17 00:00:00 2001
From: doum <doum>
Date: 星期三, 29 四月 2026 09:42:45 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 server/services/src/main/java/com/doumee/service/business/impl/ShopInfoServiceImpl.java |   94 +++++++++++++++++++++++++++++++++++++----------
 1 files changed, 74 insertions(+), 20 deletions(-)

diff --git a/server/services/src/main/java/com/doumee/service/business/impl/ShopInfoServiceImpl.java b/server/services/src/main/java/com/doumee/service/business/impl/ShopInfoServiceImpl.java
index d87fa92..cf7f782 100644
--- a/server/services/src/main/java/com/doumee/service/business/impl/ShopInfoServiceImpl.java
+++ b/server/services/src/main/java/com/doumee/service/business/impl/ShopInfoServiceImpl.java
@@ -229,13 +229,7 @@
         if (pageWrap.getModel().getOpenid() != null) {
             queryWrapper.lambda().like(ShopInfo::getOpenid, pageWrap.getModel().getOpenid());
         }
-        for (PageWrap.SortData sortData : pageWrap.getSorts()) {
-            if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) {
-                queryWrapper.orderByDesc(sortData.getProperty());
-            } else {
-                queryWrapper.orderByAsc(sortData.getProperty());
-            }
-        }
+        queryWrapper.lambda().orderByDesc(ShopInfo::getId);
         return PageData.from(shopInfoMapper.selectPage(page, queryWrapper));
     }
 
@@ -1094,6 +1088,7 @@
         // 鍙栦欢闂ㄥ簵
         List<Orders> takeSalesOrders = ordersMapper.selectList(new QueryWrapper<Orders>().lambda()
                 .eq(Orders::getDeleted, Constants.ZERO)
+                .eq(Orders::getType,Constants.ONE)
                 .ge(Orders::getCreateTime, startTime)
                 .lt(Orders::getCreateTime, endTime)
                 .eq(Orders::getTakeShopId, shopId));
@@ -1124,19 +1119,27 @@
         vo.setSettlementProfit(depositFee + takeFee);
 
         // 3. 鍦ㄥ簱璁㈠崟鏁�
-        // 3.1 瀛樹欢闂ㄥ簵=鏈棬搴楋紝status in (2宸插瘎瀛�, 5寰呭彇浠�)
-        Long depositStorageCount = ordersMapper.selectCount(new QueryWrapper<Orders>().lambda()
+        // 3.1 灏卞湴璁㈠崟锛氬瓨浠堕棬搴�=鏈棬搴楋紝type=0锛宻tatus in (2宸插瘎瀛�, 5寰呭彇浠�)
+        Long localStorageCount = ordersMapper.selectCount(new QueryWrapper<Orders>().lambda()
                 .eq(Orders::getDeleted, Constants.ZERO)
                 .eq(Orders::getDepositShopId, shopId)
+                .eq(Orders::getType, Constants.ZERO)
                 .in(Orders::getStatus,
                         Constants.OrderStatus.deposited.getStatus(),
                         Constants.OrderStatus.arrived.getStatus()));
-        // 3.2 鍙栦欢闂ㄥ簵=鏈棬搴楋紝status = 5寰呭彇浠�
+        // 3.2 寮傚湴璁㈠崟锛氬瓨浠堕棬搴�=鏈棬搴楋紝type=1锛宻tatus=2宸插瘎瀛�
+        Long remoteStorageCount = ordersMapper.selectCount(new QueryWrapper<Orders>().lambda()
+                .eq(Orders::getDeleted, Constants.ZERO)
+                .eq(Orders::getDepositShopId, shopId)
+                .eq(Orders::getType, Constants.ONE)
+                .eq(Orders::getStatus, Constants.OrderStatus.deposited.getStatus()));
+        // 3.3 鍙栦欢闂ㄥ簵=鏈棬搴楋紝寮傚湴璁㈠崟锛宻tatus = 5寰呭彇浠�
         Long takeStorageCount = ordersMapper.selectCount(new QueryWrapper<Orders>().lambda()
                 .eq(Orders::getDeleted, Constants.ZERO)
+                .eq(Orders::getType,Constants.ONE)
                 .eq(Orders::getTakeShopId, shopId)
                 .eq(Orders::getStatus, Constants.OrderStatus.arrived.getStatus()));
-        vo.setStorageCount(depositStorageCount.intValue() + takeStorageCount.intValue());
+        vo.setStorageCount(localStorageCount.intValue() + remoteStorageCount.intValue() + takeStorageCount.intValue());
 
         return vo;
     }
@@ -1327,10 +1330,12 @@
         if (shopInfo.getCompanyType() == null) {
             return;
         }
+        Areas areas = areasService.findById(shopInfo.getAreaId());
         PricingRule pricingRule = pricingRuleMapper.selectOne(new QueryWrapper<PricingRule>().lambda()
                 .eq(PricingRule::getDeleted, Constants.ZERO)
                 .eq(PricingRule::getType, Constants.THREE)
-                .eq(PricingRule::getFieldA, String.valueOf(shopInfo.getCompanyType()))
+                .eq(PricingRule::getFieldA, String.valueOf(Constants.equalsInteger(shopInfo.getCompanyType(),Constants.ZERO)?Constants.ONE:Constants.ZERO))
+                .eq(PricingRule::getCityId, areas.getParentId())
                 .last("limit 1"));
         if (pricingRule != null && StringUtils.isNotBlank(pricingRule.getFieldB())) {
             shopInfo.setDepositAmount(Long.parseLong(pricingRule.getFieldB()));
@@ -1360,19 +1365,16 @@
             for (int i = 0; i < paramPairs.length - 1; i += 2) {
                 templateParam.put(paramPairs[i], paramPairs[i + 1]);
             }
-            boolean result = AliSmsService.sendSms(phone, smsNotify.getTemplateCode(),
+            String error = AliSmsService.sendSms(phone, smsNotify.getTemplateCode(),
                     templateParam.toJSONString());
-            if (result) {
-                log.info("鐭俊鍙戦�佹垚鍔�: phone={}, template={}", phone, smsNotify.name());
-            } else {
-                log.warn("鐭俊鍙戦�佸け璐�: phone={}, template={}", phone, smsNotify.name());
-            }
-            // 瀛樺偍鐭俊璁板綍
             Smsrecord smsRecord = new Smsrecord();
             smsRecord.setPhone(phone);
             smsRecord.setContent(content);
             smsRecord.setType(Constants.ONE);
-            smsRecord.setStatus(result ? Constants.ONE : Constants.ZERO);
+            smsRecord.setStatus(error == null ? Constants.ONE : Constants.ZERO);
+            if (error != null) {
+                smsRecord.setRemark(error);
+            }
             smsRecord.setCreateTime(new Date());
             smsRecord.setDeleted(Constants.ZERO);
             smsrecordMapper.insert(smsRecord);
@@ -1416,4 +1418,56 @@
         }
     }
 
+    @Autowired
+    private com.doumee.core.utils.xpyun.XpyunPrintService xpyunPrintService;
+
+    @Override
+    public void bindPrinter(com.doumee.dao.dto.PrinterBindDTO dto) {
+        ShopInfo shop = shopInfoMapper.selectById(dto.getShopId());
+        if (shop == null || Constants.equalsInteger(shop.getDeleted(), Constants.ONE)) {
+            throw new BusinessException(ResponseStatus.DATA_EMPTY);
+        }
+        // 璋冪敤鑺儴浜戞敞鍐屾墦鍗版満
+        com.doumee.core.utils.xpyun.XpyunResponse resp = xpyunPrintService.addPrinter(
+                dto.getPrinterSn(), shop.getName());
+        if (resp.getCode() != null && resp.getCode() == 0) {
+            log.info("鑺儴浜戞墦鍗版満娉ㄥ唽鎴愬姛: sn={}", dto.getPrinterSn());
+        } else {
+            log.warn("鑺儴浜戞墦鍗版満娉ㄥ唽杩斿洖闈�0: sn={}, code={}, msg={}",
+                    dto.getPrinterSn(), resp.getCode(), resp.getMsg());
+        }
+        // 鏃犺浜戠鏄惁鎴愬姛锛岄兘缁戝畾鍒伴棬搴楋紙鍙悗缁噸璇曚簯绔敞鍐岋級
+        ShopInfo update = new ShopInfo();
+        update.setId(dto.getShopId());
+        update.setPrinterSn(dto.getPrinterSn());
+        shopInfoMapper.updateById(update);
+    }
+
+    @Override
+    public void unbindPrinter(Integer shopId) {
+        ShopInfo shop = shopInfoMapper.selectById(shopId);
+        if (shop == null || Constants.equalsInteger(shop.getDeleted(), Constants.ONE)) {
+            throw new BusinessException(ResponseStatus.DATA_EMPTY);
+        }
+        if (StringUtils.isNotBlank(shop.getPrinterSn())) {
+            xpyunPrintService.deletePrinter(shop.getPrinterSn());
+        }
+        ShopInfo update = new ShopInfo();
+        update.setId(shopId);
+        update.setPrinterSn(null);
+        shopInfoMapper.updateById(update);
+    }
+
+    @Override
+    public Object queryPrinterStatus(Integer shopId) {
+        ShopInfo shop = shopInfoMapper.selectById(shopId);
+        if (shop == null || Constants.equalsInteger(shop.getDeleted(), Constants.ONE)) {
+            throw new BusinessException(ResponseStatus.DATA_EMPTY);
+        }
+        if (StringUtils.isBlank(shop.getPrinterSn())) {
+            throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "璇ラ棬搴楁湭缁戝畾鎵撳嵃鏈�");
+        }
+        return xpyunPrintService.queryPrinterStatus(shop.getPrinterSn());
+    }
+
 }

--
Gitblit v1.9.3