diff --git a/src/main/java/com/qs/serve/common/framework/manager/AsyncFactory.java b/src/main/java/com/qs/serve/common/framework/manager/AsyncFactory.java index 7fbbc18b..0a5f7a42 100644 --- a/src/main/java/com/qs/serve/common/framework/manager/AsyncFactory.java +++ b/src/main/java/com/qs/serve/common/framework/manager/AsyncFactory.java @@ -70,15 +70,17 @@ public class AsyncFactory { return new TimerTask() { @Override public void run() { - String lockKey = "customer_price_lock:"+userId; + String lockKey = "customer_price_lock:"+userId+":"+supplierCode; String priceDataKey = "customer_price_data:"+userId; RedisService redisService = SpringUtils.getBean(RedisService.class); - redisService.set(lockKey,1); + redisService.set(lockKey,1,30,TimeUnit.SECONDS); + log.debug("获取客户金额,cusCode:{}",supplierCode); //请求获取金额 SeeYonRequestBaseService seeYonRequestService = SpringUtils.getBean(SeeYonRequestBaseService.class); - R reqResult = seeYonRequestService.getBase(ERP_CUS_AMOUNT,"获取客户["+supplierCode+"]金额"); + R reqResult = seeYonRequestService.getBase(ERP_CUS_AMOUNT+"?supplierCode="+supplierCode,"获取客户["+supplierCode+"]金额"); if(reqResult==null || !reqResult.getStatus().equals(200)){ //有错误退出 + log.warn("获取客户金额失败,cusCode:{}",supplierCode); redisService.set(lockKey,0); return; } @@ -86,6 +88,7 @@ public class AsyncFactory { //数据格式:supplierCode_&_amount 如 A235654_&_612.00 String value = supplierCode+"_&_"+amount; //缓存15分钟 + log.debug("获取客户金额成功,cusCode:{},缓存15分钟",supplierCode); redisService.set(priceDataKey,value,15, TimeUnit.MINUTES); redisService.set(lockKey,0); } diff --git a/src/main/java/com/qs/serve/modules/erp/controller/ErpCustomerController.java b/src/main/java/com/qs/serve/modules/erp/controller/ErpCustomerController.java index 78b6f70f..caa30886 100644 --- a/src/main/java/com/qs/serve/modules/erp/controller/ErpCustomerController.java +++ b/src/main/java/com/qs/serve/modules/erp/controller/ErpCustomerController.java @@ -43,14 +43,12 @@ public class ErpCustomerController { public R getAmount(@PathVariable String code){ BmsSupplier supplier = supplierService.getByCode(code,null); if(supplier!=null){ -// ErpCustomerAmountResult amountResult = erpCustomerService.getCustomerAmount(code); -// if(amountResult==null){ -// //初始化帐余 -// erpCustomerService.initAmount(code); -// return new R(201,"客户帐余初始中"); -// } - ErpCustomerAmountResult amountResult = new ErpCustomerAmountResult(); - amountResult.setAmount(new BigDecimal("123456")); + ErpCustomerAmountResult amountResult = erpCustomerService.getCustomerAmount(code); + if(amountResult==null){ + //初始化帐余 + erpCustomerService.initAmount(code); + return new R(201,"客户帐余初始中"); + } return R.ok(amountResult); } return R.error(); diff --git a/src/main/java/com/qs/serve/modules/erp/service/impl/ErpCustomerServiceImpl.java b/src/main/java/com/qs/serve/modules/erp/service/impl/ErpCustomerServiceImpl.java index aecf7ac7..a252c06e 100644 --- a/src/main/java/com/qs/serve/modules/erp/service/impl/ErpCustomerServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/erp/service/impl/ErpCustomerServiceImpl.java @@ -55,7 +55,7 @@ public class ErpCustomerServiceImpl implements ErpCustomerService { @Override public void initAmount(String code) { String userId = AuthContextUtils.getSysUserId(); - String lockKey = "customer_price_lock:"+userId; + String lockKey = "customer_price_lock:"+userId+":"+code; // lockState=1 锁 Integer lockState = redisService.getInteger(lockKey); log.debug("customer_price_lock_value:"+lockState); diff --git a/src/main/java/com/qs/serve/modules/goods/controller/GoodsSpuController.java b/src/main/java/com/qs/serve/modules/goods/controller/GoodsSpuController.java index abf9e695..559805e5 100644 --- a/src/main/java/com/qs/serve/modules/goods/controller/GoodsSpuController.java +++ b/src/main/java/com/qs/serve/modules/goods/controller/GoodsSpuController.java @@ -131,7 +131,7 @@ public class GoodsSpuController { @SysLog(module = SystemModule.GOODS, title = "spu", biz = BizType.QUERY) @PreAuthorize("hasRole('goods:spu:query')") public R getById(@PathVariable("id") Long id){ - GoodsSpuVo goodsSpu = goodsSpuService.getVoById(id); + GoodsSpuVo goodsSpu = goodsSpuService.getVoById(id,null); return R.ok(goodsSpu); } diff --git a/src/main/java/com/qs/serve/modules/goods/controller/api/GoodsSpuApi.java b/src/main/java/com/qs/serve/modules/goods/controller/api/GoodsSpuApi.java index 0183dc50..d8b4755c 100644 --- a/src/main/java/com/qs/serve/modules/goods/controller/api/GoodsSpuApi.java +++ b/src/main/java/com/qs/serve/modules/goods/controller/api/GoodsSpuApi.java @@ -6,8 +6,10 @@ import com.qs.serve.common.model.dto.PageVo; import com.qs.serve.common.model.dto.R; import com.qs.serve.common.model.enums.BizType; import com.qs.serve.common.model.enums.SystemModule; +import com.qs.serve.common.util.AuthContextUtils; import com.qs.serve.common.util.PageUtil; import com.qs.serve.common.util.StringUtils; +import com.qs.serve.modules.bms.entity.BmsSupplier; import com.qs.serve.modules.goods.entity.GoodsSpu; import com.qs.serve.modules.goods.entity.bo.GoodsSpuBatchTasteBo; import com.qs.serve.modules.goods.entity.vo.GoodsSpuVo; @@ -68,13 +70,12 @@ public class GoodsSpuApi { /** * 获取详情 * @param id spuId - * @param supplierId 客户id * @return */ @GetMapping("/getById/{id}") - public R getById(@PathVariable("id") Long id,String supplierId){ - GoodsSpuVo goodsSpu = goodsSpuService.getVoById(id); - //TODO 获取价格 + public R getById(@PathVariable("id") Long id){ + BmsSupplier supplier = AuthContextUtils.getCurrentSupplier(); + GoodsSpuVo goodsSpu = goodsSpuService.getVoById(id, supplier.getCode()); return R.ok(goodsSpu); } diff --git a/src/main/java/com/qs/serve/modules/goods/service/GoodsSpuService.java b/src/main/java/com/qs/serve/modules/goods/service/GoodsSpuService.java index 06153f22..34a02acb 100644 --- a/src/main/java/com/qs/serve/modules/goods/service/GoodsSpuService.java +++ b/src/main/java/com/qs/serve/modules/goods/service/GoodsSpuService.java @@ -21,7 +21,7 @@ public interface GoodsSpuService extends IService { List selectSpuList(GoodsSpu goodsSpu); - GoodsSpuVo getVoById(Long id); + GoodsSpuVo getVoById(Long id,String supplierCode); GoodsSpu getByCode(String code); diff --git a/src/main/java/com/qs/serve/modules/goods/service/impl/GoodsSkuServiceImpl.java b/src/main/java/com/qs/serve/modules/goods/service/impl/GoodsSkuServiceImpl.java index 60945fb8..70ab17ea 100644 --- a/src/main/java/com/qs/serve/modules/goods/service/impl/GoodsSkuServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/goods/service/impl/GoodsSkuServiceImpl.java @@ -82,18 +82,22 @@ public class GoodsSkuServiceImpl extends ServiceImpl im InventoryCusPriceQuery query = new InventoryCusPriceQuery(); query.setCusCode(supplierCode); query.setInvCodes(codes); - R res = seeYonRequestBaseService.postBase(ERP_CUS_INV_PRICE,query,"查询客户特殊价"); - if(res.getStatus().equals(200)){ - List inventoryCusPrices = JsonUtil.jsonToList(res.getData(), InventoryCusPrice.class); - assert inventoryCusPrices != null; - for (InventoryCusPrice cusPrice : inventoryCusPrices) { - for (GoodsSku sku : skus) { - if(sku.getSkuCode().equals(cusPrice.getInvCode())){ - sku.setSalesPrice(cusPrice.getPrice()); - break; + try { + R res = seeYonRequestBaseService.postBase(ERP_CUS_INV_PRICE,query,"查询客户特殊价"); + if(res.getStatus().equals(200)){ + List inventoryCusPrices = JsonUtil.jsonToList(res.getData(), InventoryCusPrice.class); + assert inventoryCusPrices != null; + for (InventoryCusPrice cusPrice : inventoryCusPrices) { + for (GoodsSku sku : skus) { + if(sku.getSkuCode().equals(cusPrice.getInvCode())){ + sku.setSalesPrice(cusPrice.getPrice()); + break; + } } } } + } catch (Exception e) { + log.error("客户特殊价异常:{}",e.getMessage()); } } } @@ -105,18 +109,22 @@ public class GoodsSkuServiceImpl extends ServiceImpl im InventoryCusPriceQuery query = new InventoryCusPriceQuery(); query.setCusCode(supplierCode); query.setInvCodes(codes); - R res = seeYonRequestBaseService.postBase(ERP_CUS_INV_PRICE,query,"查询客户特殊价"); - if(res.getStatus().equals(200)){ - List inventoryCusPrices = JsonUtil.jsonToList(res.getData(), InventoryCusPrice.class); - assert inventoryCusPrices != null; - for (InventoryCusPrice cusPrice : inventoryCusPrices) { - for (GoodsSku sku : skus) { - if(sku.getSkuCode().equals(cusPrice.getInvCode())){ - sku.setSalesPrice(cusPrice.getPrice()); - break; + try { + R res = seeYonRequestBaseService.postBase(ERP_CUS_INV_PRICE,query,"查询客户特殊价"); + if(res.getStatus().equals(200)){ + List inventoryCusPrices = JsonUtil.jsonToList(res.getData(), InventoryCusPrice.class); + assert inventoryCusPrices != null; + for (InventoryCusPrice cusPrice : inventoryCusPrices) { + for (GoodsSku sku : skus) { + if(sku.getSkuCode().equals(cusPrice.getInvCode())){ + sku.setSalesPrice(cusPrice.getPrice()); + break; + } } } } + } catch (Exception e) { + log.error("客户特殊价异常:{}",e.getMessage()); } } } diff --git a/src/main/java/com/qs/serve/modules/goods/service/impl/GoodsSpuServiceImpl.java b/src/main/java/com/qs/serve/modules/goods/service/impl/GoodsSpuServiceImpl.java index 7ca582d2..4b8f4f11 100644 --- a/src/main/java/com/qs/serve/modules/goods/service/impl/GoodsSpuServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/goods/service/impl/GoodsSpuServiceImpl.java @@ -60,10 +60,13 @@ public class GoodsSpuServiceImpl extends ServiceImpl im } @Override - public GoodsSpuVo getVoById(Long id) { + public GoodsSpuVo getVoById(Long id,String supplierCode) { GoodsSpu goodsSpu = this.getById(id); GoodsSpuVo goodsSpuVo = CopierUtil.copy(goodsSpu,new GoodsSpuVo()); List skuList = goodsSkuService.getBySpuId(id); + if(StringUtils.hasText(supplierCode)){ + goodsSkuService.initSkuCusPrice(supplierCode,skuList); + } goodsSpuVo.setSkuList(skuList); List skuSpecValueList = goodsSkuSpecValueService.listSpecValueBySpuId(id); goodsSpuVo.setSkuSpecValueList(skuSpecValueList); diff --git a/src/main/java/com/qs/serve/modules/oms/service/impl/OmsOrderServiceImpl.java b/src/main/java/com/qs/serve/modules/oms/service/impl/OmsOrderServiceImpl.java index 805f96c4..1fcb6721 100644 --- a/src/main/java/com/qs/serve/modules/oms/service/impl/OmsOrderServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/oms/service/impl/OmsOrderServiceImpl.java @@ -2,6 +2,7 @@ package com.qs.serve.modules.oms.service.impl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.qs.serve.common.model.dto.R; +import com.qs.serve.common.util.Assert; import com.qs.serve.common.util.AuthContextUtils; import com.qs.serve.common.util.CollectionUtil; import com.qs.serve.common.util.StringUtils; @@ -112,6 +113,9 @@ public class OmsOrderServiceImpl extends ServiceImpl im SysUser user = sysUserService.getById(AuthContextUtils.getSysUserId()); BmsSupplier supplier = confirmOrder.getSupplier(); BmsSupplierAddress address = confirmOrder.getDefaultAddress(); + if(address==null){ + Assert.throwEx("请补充收货地址"); + } List shoppingCarts = confirmOrder.getShoppingCarts(); OmsOrder order = new OmsOrder(); order.setOrderSn(StringUtils.generateOrderNo()); diff --git a/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetBatchServiceImpl.java b/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetBatchServiceImpl.java index 28b4815b..3a3f7488 100644 --- a/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetBatchServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetBatchServiceImpl.java @@ -409,6 +409,7 @@ public class TbsBudgetBatchServiceImpl extends ServiceImpl