diff --git a/mallinkCApi/src/main/java/com/iformall/controller/WxCouponController.java b/mallinkCApi/src/main/java/com/iformall/controller/WxCouponController.java index ec00a11b1..794328d66 100644 --- a/mallinkCApi/src/main/java/com/iformall/controller/WxCouponController.java +++ b/mallinkCApi/src/main/java/com/iformall/controller/WxCouponController.java @@ -133,8 +133,7 @@ public class WxCouponController extends BaseController { @ApiImplicitParams({ @ApiImplicitParam(name = "couponChannelId", value = "couponChannelId", dataType = "String", paramType = "query", required = true)}) public ResultData couponPriceAndStock(String couponChannelId) { - if ((StringUtils.isBlank(couponChannelId) || couponChannelId.equalsIgnoreCase(Constant.UNDEFINED)) - ) { + if ((StringUtils.isBlank(couponChannelId) || couponChannelId.equalsIgnoreCase(Constant.UNDEFINED))) { return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "couponChannelId为空"); } Long couponChannelIdL = 0L; @@ -177,6 +176,102 @@ public class WxCouponController extends BaseController { return new ResultData(sb.toString()); } + @ApiOperation("批量根据id(couponChannel)查询库存价格接口") + @GetMapping("/batchCouponPriceAndStock") + @ApiImplicitParams({ + @ApiImplicitParam(name = "couponChannelIds", value = "couponChannelIds", dataType = "String", paramType = "query", required = true)}) + public ResultData batchCouponPriceAndStock(String couponChannelIds) { + if ((StringUtils.isBlank(couponChannelIds) || couponChannelIds.equalsIgnoreCase(Constant.UNDEFINED))) { + return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "couponChannelId为空"); + } + + String[] couponChannelSs = couponChannelIds.split(","); + if (null == couponChannelSs || couponChannelSs.length <= 0 ) { + return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "couponChannelId为空"); + } + + List ccids = new ArrayList();; + for (int i = 0 ; i < couponChannelSs.length; i ++ ) { + Long couponChannelIdL = 0L; + String ccid = couponChannelSs[i]; + try { + if (StringUtils.isNotBlank(ccid) && !ccid.equalsIgnoreCase(Constant.UNDEFINED)) { + couponChannelIdL = Long.valueOf(ccid); + } + } catch (NumberFormatException e) { + logger.error("id转换失败" + ccid); + return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "couponChannelId转换失败" + ccid); + } + + if(couponChannelIdL <= 0){ + return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "couponChannelId为空"); + } + ccids.add(couponChannelIdL); + } + + List channelPriceAndStock = wxCouponChannelService.getPriceAndStock(this.getTenantInfo(), ccids); + if (null == channelPriceAndStock || channelPriceAndStock.size() <= 0 ) { + return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "couponChannelId非法"); + } + + List couponIds = new ArrayList(); + List couponChannelList = new ArrayList(); + Map couponChannelMap = new HashMap(); + for (int i = 0 ; i < channelPriceAndStock.size() ; i ++ ) { + WxCouponChannel cc = channelPriceAndStock.get(i); + couponChannelList.add(cc.getId()); + if (null != cc.getCouponId()) { + couponIds.add(cc.getCouponId()); + } + couponChannelMap.put(cc.getId(), cc); + } + + if (couponIds.size() <= 0 ) { + return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "couponChannelId查询不到coupon"); + } + + List couponList = couponService.getPriceAndStock(couponIds,this.getTenantInfo().getTenantId()); + if (null == couponList) { + return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "couponChannelId查询不到coupon"); + } + Map couponMap = new HashMap(); + for (int i = 0 ; i < couponList.size() ; i ++ ) { + WxCoupon cc = couponList.get(i); + couponMap.put(cc.getId(), cc); + } + StringBuffer sb = new StringBuffer("["); + for (int i = 0 ; i < couponChannelList.size() ; i ++) { + Long ccid = couponChannelList.get(i); + WxCouponChannel cc = couponChannelMap.get(ccid); + if (null != cc) { + WxCoupon coupon = null; + if (null != cc.getCouponId()) { + coupon = couponMap.get(cc.getCouponId()); + } + if (null == coupon) { + return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "couponChannelId查询不到coupon"); + } + sb.append("{\"salePrice\":"); + if (null != cc.getChannelPrice()) { + sb.append(cc.getChannelPrice()); + }else { + sb.append(coupon.getSalePrice()); + } + sb.append(",\"remainInventory\":"); + if (null != cc.getChannelStock()) { + sb.append(cc.getChannelStock()); + }else { + sb.append(coupon.getRemainInventory()); + } + sb.append(",\"inventory\":").append(coupon.getInventory()).append(",\"price\":").append(coupon.getPrice()).append(",\"creditPrice\":").append(coupon.getCreditPrice()).append("}"); + } + + } + sb.append("]"); + + return new ResultData(sb.toString()); + } + @ApiOperation("根据id(couponChannel)查询商品商户接口") @GetMapping("/couponMerchant") @ApiImplicitParams({ diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxCouponChannelMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxCouponChannelMapper.java index c97929f50..6f1b56785 100644 --- a/mallinkService/src/main/java/com/iformall/mapper/WxCouponChannelMapper.java +++ b/mallinkService/src/main/java/com/iformall/mapper/WxCouponChannelMapper.java @@ -70,5 +70,6 @@ public interface WxCouponChannelMapper extends CommonMapper batGetPriceAndStock(@Param("ids")List ids,@Param("tenantId")String tenantId); } diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxCouponMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxCouponMapper.java index fef896b1c..6e5f61e64 100644 --- a/mallinkService/src/main/java/com/iformall/mapper/WxCouponMapper.java +++ b/mallinkService/src/main/java/com/iformall/mapper/WxCouponMapper.java @@ -32,6 +32,7 @@ public interface WxCouponMapper extends CommonMapper { WxCoupon selectById(@Param("id")Long id,@Param("tenantId")String tenantId); WxCoupon getPriceAndStock(@Param("id")Long id,@Param("tenantId")String tenantId); + List batchGetPriceAndStock(@Param("ids")List ids,@Param("tenantId")String tenantId); WxCouponCVo findVoDetail(@Param("id")Long id,@Param("tenantId")String tenantId); WxCouponCVo findVoStatusDetail(@Param("id")Long id,@Param("tenantId")String tenantId); diff --git a/mallinkService/src/main/java/com/iformall/service/WxCouponChannelService.java b/mallinkService/src/main/java/com/iformall/service/WxCouponChannelService.java index 81eb6b3bb..bc66a3a06 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxCouponChannelService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxCouponChannelService.java @@ -71,6 +71,7 @@ public interface WxCouponChannelService { void releaseChannelStock(WxCouponChannel record); void setChannelPrice(WxCouponChannel record); WxCouponChannel getPriceAndStock(TenantEntity tenantEntity,Long couponChannelId); + List getPriceAndStock(TenantEntity tenantEntity,List couponChannelIds); ResultData getCouponChannelPoi(TenantEntity tenantInfo, Long id); } diff --git a/mallinkService/src/main/java/com/iformall/service/WxCouponService.java b/mallinkService/src/main/java/com/iformall/service/WxCouponService.java index 4ccb6db99..f0a7d0e4e 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxCouponService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxCouponService.java @@ -71,6 +71,7 @@ public interface WxCouponService { WxCoupon getById(Long id,String tenantId); WxCoupon getPriceAndStock(Long id,String tenantId); + List getPriceAndStock(List id,String tenantId); WxCoupon getHtmlById(Long id,String tenantId); diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponChannelServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponChannelServiceImpl.java index 2b2cc45da..479d98bfa 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponChannelServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponChannelServiceImpl.java @@ -796,6 +796,11 @@ public class WxCouponChannelServiceImpl implements WxCouponChannelService { public WxCouponChannel getPriceAndStock(TenantEntity tenantEntity, Long couponChannelId) { return wxCouponChannelMapper.getPriceAndStock(couponChannelId, tenantEntity.getTenantId()); } + + @Override + public List getPriceAndStock(TenantEntity tenantEntity, List couponChannelIds) { + return wxCouponChannelMapper.batGetPriceAndStock(couponChannelIds, tenantEntity.getTenantId()); + } } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponServiceImpl.java index f24dfe495..d7d31067c 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponServiceImpl.java @@ -241,6 +241,11 @@ public class WxCouponServiceImpl implements WxCouponService { return wxCouponMapper.getPriceAndStock(id,tenantId); } + @Override + public List getPriceAndStock(List ids,String tenantId) { + return wxCouponMapper.batchGetPriceAndStock(ids,tenantId); + } + @Override public WxCoupon getHtmlById(Long id,String tenantId) { return wxCouponMapper.selectById(id,tenantId); diff --git a/mallinkService/src/main/resources/mapper/WxCouponChannelMapper.xml b/mallinkService/src/main/resources/mapper/WxCouponChannelMapper.xml index 5463aa150..cd9e02f86 100644 --- a/mallinkService/src/main/resources/mapper/WxCouponChannelMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxCouponChannelMapper.xml @@ -391,5 +391,13 @@ + + diff --git a/mallinkService/src/main/resources/mapper/WxCouponMapper.xml b/mallinkService/src/main/resources/mapper/WxCouponMapper.xml index d11e65cce..41004f39d 100644 --- a/mallinkService/src/main/resources/mapper/WxCouponMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxCouponMapper.xml @@ -329,6 +329,14 @@ select c.sale_price,c.price,c.remain_inventory,c.inventory,c.credit_price from wx_coupon c where id = #{id} and tenant_id = #{tenantId} + +