From f2b6fdd955f8ac6e5b351e0b5e3a9f583ed6da2e Mon Sep 17 00:00:00 2001
From: doum <doum>
Date: 星期四, 30 四月 2026 15:26:05 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 server/services/src/main/java/com/doumee/service/business/impl/ShopInfoServiceImpl.java |  118 ++++++++++++++++++++++++++++++++++++++++++++++++----------
 1 files changed, 97 insertions(+), 21 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..87cd2c6 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
@@ -26,6 +26,12 @@
 import com.doumee.dao.business.model.Orders;
 import com.doumee.dao.business.model.PricingRule;
 import com.doumee.dao.business.model.ShopInfo;
+import com.doumee.config.xyy.XyyConfig;
+import com.doumee.config.xyy.dto.AddPrinterRequest;
+import com.doumee.config.xyy.dto.AddPrinterRequestItem;
+import com.doumee.config.xyy.dto.DelPrinterRequest;
+import com.doumee.config.xyy.vo.ObjectRestResponse;
+import com.doumee.config.xyy.vo.PrinterResult;
 import com.doumee.dao.dto.*;
 import com.doumee.dao.system.model.SystemDictData;
 import com.doumee.dao.system.SystemUserMapper;
@@ -93,6 +99,12 @@
 
     @Autowired
     private SmsrecordMapper smsrecordMapper;
+
+    @Autowired
+    private PrintService printService;
+
+    @Autowired
+    private XyyConfig xyyConfig;
     @Override
     public Integer create(ShopInfo shopInfo) {
         shopInfoMapper.insert(shopInfo);
@@ -229,13 +241,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));
     }
 
@@ -876,6 +882,7 @@
         vo.setFeeStandard(shop.getFeeStandard());
         vo.setLatitude(shop.getLatitude());
         vo.setLongitude(shop.getLongitude());
+        vo.setLinkPhone(shop.getLinkPhone());
 
         // 闂ㄥご鐓� + 鍐呴儴鐓� 鍏ㄨ矾寰勯泦鍚�
         String imgPrefix = getShopPrefix();
@@ -1088,12 +1095,15 @@
         // 瀛樹欢闂ㄥ簵
         List<Orders> depositSalesOrders = ordersMapper.selectList(new QueryWrapper<Orders>().lambda()
                 .eq(Orders::getDeleted, Constants.ZERO)
+                .notIn(Orders::getStatus,Constants.OrderStatus.cancelled.getStatus(),Constants.OrderStatus.waitPay.getStatus())
                 .ge(Orders::getCreateTime, startTime)
                 .lt(Orders::getCreateTime, endTime)
                 .eq(Orders::getDepositShopId, shopId));
         // 鍙栦欢闂ㄥ簵
         List<Orders> takeSalesOrders = ordersMapper.selectList(new QueryWrapper<Orders>().lambda()
                 .eq(Orders::getDeleted, Constants.ZERO)
+                .eq(Orders::getType,Constants.ONE)
+                .notIn(Orders::getStatus,Constants.OrderStatus.cancelled.getStatus(),Constants.OrderStatus.waitPay.getStatus())
                 .ge(Orders::getCreateTime, startTime)
                 .lt(Orders::getCreateTime, endTime)
                 .eq(Orders::getTakeShopId, shopId));
@@ -1124,19 +1134,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;
     }
@@ -1158,7 +1176,10 @@
                 .last("limit 1")
         );
         if(shop==null){
-            throw new BusinessException(ResponseStatus.ACCOUNT_INCORRECT);
+            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"璇锋牳瀵圭櫥褰曟墜鏈哄彿鏄惁姝g‘");
+        }
+        if(Constants.equalsInteger(shop.getStatus(),Constants.ONE)){
+            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"闂ㄥ簵宸茬鐢紝璇疯仈绯荤鐞嗗憳");
         }
         if(!Constants.equalsInteger(shop.getAuditStatus(),Constants.THREE)){
             if(Constants.equalsInteger(shop.getAuditStatus(),Constants.ONE)){
@@ -1216,6 +1237,9 @@
                 .last("limit 1"));
         if (shop == null) {
             return null;
+        }
+        if(Constants.equalsInteger(shop.getStatus(),Constants.ONE)){
+            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"闂ㄥ簵宸茬鐢紝璇疯仈绯荤鐞嗗憳");
         }
         // 鍒涘缓token锛坓enerateTokenForRedis 宸茶嚜鍔ㄦ竻闄よ鐢ㄦ埛鏃oken锛屼繚璇佸敮涓�鏈夋晥锛�
         String token = JwtTokenUtil.generateTokenForRedis(shop.getId(), Constants.TWO, JSONObject.toJSONString(shop), redisTemplate);
@@ -1327,10 +1351,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 +1386,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 +1439,57 @@
         }
     }
 
+    @Override
+    public void maintainPrinterSn(ShopPrinterDTO dto) {
+        ShopInfo shop = shopInfoMapper.selectById(dto.getId());
+        if (shop == null || Constants.equalsInteger(shop.getDeleted(), Constants.ONE)) {
+            throw new BusinessException(ResponseStatus.DATA_EMPTY);
+        }
+        String oldSn = shop.getPrinterSn();
+        String newSn = dto.getPrinterSn();
+        boolean hasNewSn = StringUtils.isNotBlank(newSn);
+        boolean hasOldSn = StringUtils.isNotBlank(oldSn);
+
+        if (!hasNewSn) {
+            // 鏈紶鎵撳嵃鏈篠N 鈫� 鍒犻櫎閫昏緫
+            if (hasOldSn) {
+                delPrinterFromXyy(oldSn);
+                shop.setPrinterSn(null);
+                shopInfoMapper.updateById(shop);
+            }
+            return;
+        }
+
+        // 浼犱簡鎵撳嵃鏈篠N 鈫� 濡傛灉鏃х粦瀹氬瓨鍦紝鍏堝垹闄�
+        if (hasOldSn) {
+            delPrinterFromXyy(oldSn);
+        }
+
+        // 缁戝畾鏂版墦鍗版満
+        AddPrinterRequest addReq = new AddPrinterRequest();
+        xyyConfig.createRequestHeader(addReq);
+        addReq.setItems(new AddPrinterRequestItem[]{new AddPrinterRequestItem() {{
+            setSn(newSn);
+            setName(shop.getName());
+        }}});
+        ObjectRestResponse<PrinterResult> addResp = printService.addPrinters(addReq);
+        if (addResp.getCode() != 0) {
+            throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "缁戝畾鎵撳嵃鏈哄け璐ワ細" + addResp.getMsg());
+        }
+        log.info("缁戝畾鎴愬姛锛歿}", newSn);
+        shop.setPrinterSn(newSn);
+        shopInfoMapper.updateById(shop);
+    }
+
+    private void delPrinterFromXyy(String sn) {
+        DelPrinterRequest delReq = new DelPrinterRequest();
+        xyyConfig.createRequestHeader(delReq);
+        delReq.setSnlist(new String[]{sn});
+        ObjectRestResponse<PrinterResult> delResp = printService.delPrinters(delReq);
+        if (delResp.getCode() != 0) {
+            throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "瑙g粦鎵撳嵃鏈哄け璐ワ細" + delResp.getMsg());
+        }
+        log.info("瑙g粦鎴愬姛锛歿}", sn);
+    }
+
 }

--
Gitblit v1.9.3