|
@@ -576,7 +576,7 @@ public class OrderServiceImpl implements OrderService {
|
|
new BigDecimal(orderGoods.getNumber()).multiply(orderGoods.getRetailPrice()).setScale(2, RoundingMode.HALF_UP).toString(),
|
|
new BigDecimal(orderGoods.getNumber()).multiply(orderGoods.getRetailPrice()).setScale(2, RoundingMode.HALF_UP).toString(),
|
|
orderGoods.getDiscountedPrice().toString(),
|
|
orderGoods.getDiscountedPrice().toString(),
|
|
orderGoods.getRetailPrice().subtract(orderGoods.getDiscountedPrice()).setScale(2, RoundingMode.HALF_UP).toString()
|
|
orderGoods.getRetailPrice().subtract(orderGoods.getDiscountedPrice()).setScale(2, RoundingMode.HALF_UP).toString()
|
|
- );
|
|
|
|
|
|
+ );
|
|
goodsList.add(goods);
|
|
goodsList.add(goods);
|
|
}
|
|
}
|
|
|
|
|
|
@@ -1061,7 +1061,7 @@ public class OrderServiceImpl implements OrderService {
|
|
* @param user
|
|
* @param user
|
|
*/
|
|
*/
|
|
private void resetGoodsStockHkMall(OrderEntity order,Integer stockNum, ProductStoreRelaEntity storeRelaEntity,
|
|
private void resetGoodsStockHkMall(OrderEntity order,Integer stockNum, ProductStoreRelaEntity storeRelaEntity,
|
|
- OrderGoodsEntity orderGoodsEntity,SysUserEntity user) {
|
|
|
|
|
|
+ OrderGoodsEntity orderGoodsEntity,SysUserEntity user) {
|
|
GoodsEntity goodsEntity = goodsDao.queryObject(storeRelaEntity.getGoodsId());
|
|
GoodsEntity goodsEntity = goodsDao.queryObject(storeRelaEntity.getGoodsId());
|
|
if (goodsEntity != null) {
|
|
if (goodsEntity != null) {
|
|
//商品数量 + 待退款数量
|
|
//商品数量 + 待退款数量
|
|
@@ -1143,7 +1143,7 @@ public class OrderServiceImpl implements OrderService {
|
|
* @param user
|
|
* @param user
|
|
*/
|
|
*/
|
|
private void resetStoreGoodsStockMall(OrderEntity order,Integer stockNum, ProductStoreRelaEntity storeRelaEntity,
|
|
private void resetStoreGoodsStockMall(OrderEntity order,Integer stockNum, ProductStoreRelaEntity storeRelaEntity,
|
|
- OrderGoodsEntity orderGoodsEntity, BigDecimal sellVolume,SysUserEntity user) {
|
|
|
|
|
|
+ OrderGoodsEntity orderGoodsEntity, BigDecimal sellVolume,SysUserEntity user) {
|
|
storeRelaEntity.setSellVolume(Integer.parseInt(sellVolume.toString())); // 减退库存
|
|
storeRelaEntity.setSellVolume(Integer.parseInt(sellVolume.toString())); // 减退库存
|
|
//库存数量 + 商品数量
|
|
//库存数量 + 商品数量
|
|
storeRelaEntity.setStockNum(stockNum + orderGoodsEntity.getNumber());//库存数量
|
|
storeRelaEntity.setStockNum(stockNum + orderGoodsEntity.getNumber());//库存数量
|
|
@@ -2573,6 +2573,7 @@ public class OrderServiceImpl implements OrderService {
|
|
|
|
|
|
processRecordEntity.setPaymentStartTime(new Date());
|
|
processRecordEntity.setPaymentStartTime(new Date());
|
|
// 判断是微信的支付码还是支付宝的支付码
|
|
// 判断是微信的支付码还是支付宝的支付码
|
|
|
|
+
|
|
if (!org.springframework.util.StringUtils.isEmpty(env) && Constants.PROD.equals(env)) {
|
|
if (!org.springframework.util.StringUtils.isEmpty(env) && Constants.PROD.equals(env)) {
|
|
if (parCode.startsWith("28")) {
|
|
if (parCode.startsWith("28")) {
|
|
// 支付宝支付
|
|
// 支付宝支付
|
|
@@ -2658,10 +2659,24 @@ public class OrderServiceImpl implements OrderService {
|
|
List<MkActivitiesPresentIntegralEntity> mkActivitiesEntityList = mkActivitiesPresentIntegralService.querySkuByNow(store.getId().toString(), DateUtils.format(new Date()
|
|
List<MkActivitiesPresentIntegralEntity> mkActivitiesEntityList = mkActivitiesPresentIntegralService.querySkuByNow(store.getId().toString(), DateUtils.format(new Date()
|
|
, "yyyy-MM-dd HH:mm:ss")
|
|
, "yyyy-MM-dd HH:mm:ss")
|
|
, Constants.ActivityTopicEnum.ZSJF.getTopicCode());
|
|
, Constants.ActivityTopicEnum.ZSJF.getTopicCode());
|
|
- Map<String, MkActivitiesPresentIntegralEntity> mkActivitiesEntityMap = new HashMap<>();
|
|
|
|
|
|
+ // ZSJF活动
|
|
|
|
+ Map<String, MkActivitiesPresentIntegralEntity> zsjfActivitiesEntityMap = new HashMap<>();
|
|
|
|
+
|
|
|
|
+ if(!CollectionUtils.isEmpty(mkActivitiesEntityList) && mkActivitiesEntityList.size() > 0){
|
|
|
|
+ // 不为空 则处理
|
|
|
|
+ zsjfActivitiesEntityMap = mkActivitiesEntityList.stream()
|
|
|
|
+ .collect(Collectors.toMap(MkActivitiesPresentIntegralEntity::getSku
|
|
|
|
+ , mkActivitiesPresentIntegralEntity -> mkActivitiesPresentIntegralEntity, (k1, k2) -> k2));
|
|
|
|
+ }
|
|
|
|
+ // JFDK活动
|
|
|
|
+ Map<String, MkActivitiesPresentIntegralEntity> jfdkActivitiesEntityMap = new HashMap<>();
|
|
|
|
+ // 查询积分抵扣活动 用于判断是否与赠送积分活动互斥
|
|
|
|
+ List<MkActivitiesPresentIntegralEntity> jfdkActivitiesEntityList = mkActivitiesPresentIntegralService.querySkuByNow(store.getId().toString(), DateUtils.format(new Date()
|
|
|
|
+ , "yyyy-MM-dd HH:mm:ss")
|
|
|
|
+ , Constants.ActivityTopicEnum.JFDK.getTopicCode());
|
|
if(!CollectionUtils.isEmpty(mkActivitiesEntityList) && mkActivitiesEntityList.size() > 0){
|
|
if(!CollectionUtils.isEmpty(mkActivitiesEntityList) && mkActivitiesEntityList.size() > 0){
|
|
// 不为空 则处理
|
|
// 不为空 则处理
|
|
- mkActivitiesEntityMap = mkActivitiesEntityList.stream()
|
|
|
|
|
|
+ jfdkActivitiesEntityMap = jfdkActivitiesEntityList.stream()
|
|
.collect(Collectors.toMap(MkActivitiesPresentIntegralEntity::getSku
|
|
.collect(Collectors.toMap(MkActivitiesPresentIntegralEntity::getSku
|
|
, mkActivitiesPresentIntegralEntity -> mkActivitiesPresentIntegralEntity, (k1, k2) -> k2));
|
|
, mkActivitiesPresentIntegralEntity -> mkActivitiesPresentIntegralEntity, (k1, k2) -> k2));
|
|
}
|
|
}
|
|
@@ -2701,7 +2716,7 @@ public class OrderServiceImpl implements OrderService {
|
|
}
|
|
}
|
|
// 在这里计算赠送积分,并放入
|
|
// 在这里计算赠送积分,并放入
|
|
// 判断此sku是否参加活动 并计算活动积分
|
|
// 判断此sku是否参加活动 并计算活动积分
|
|
- getGiftScore(activityGiftScore, bigDecimal, mkActivitiesEntityMap, pointsDetailNameId, orderGiftScoreRulesVo,number);
|
|
|
|
|
|
+ getGiftScore(activityGiftScore, bigDecimal, zsjfActivitiesEntityMap, jfdkActivitiesEntityMap, pointsDetailNameId, orderGiftScoreRulesVo,number);
|
|
giftGoodsScoreDetailMap.put(pointsDetailNameId, orderGiftScoreRulesVo);
|
|
giftGoodsScoreDetailMap.put(pointsDetailNameId, orderGiftScoreRulesVo);
|
|
goodsDataMap.remove(pointsDetailNameId);
|
|
goodsDataMap.remove(pointsDetailNameId);
|
|
}
|
|
}
|
|
@@ -2736,7 +2751,7 @@ public class OrderServiceImpl implements OrderService {
|
|
orderGiftScoreRulesVo.setGenerateRatio(BigDecimal.ZERO);
|
|
orderGiftScoreRulesVo.setGenerateRatio(BigDecimal.ZERO);
|
|
}
|
|
}
|
|
// 判断此sku是否参加活动 并计算活动积分
|
|
// 判断此sku是否参加活动 并计算活动积分
|
|
- getGiftScore(activityGiftScore, bigDecimal, mkActivitiesEntityMap, sku, orderGiftScoreRulesVo, number);
|
|
|
|
|
|
+ getGiftScore(activityGiftScore, bigDecimal, zsjfActivitiesEntityMap, jfdkActivitiesEntityMap, sku, orderGiftScoreRulesVo, number);
|
|
giftGoodsScoreDetailMap.put(sku, orderGiftScoreRulesVo);
|
|
giftGoodsScoreDetailMap.put(sku, orderGiftScoreRulesVo);
|
|
goodsDataMap.remove(sku);
|
|
goodsDataMap.remove(sku);
|
|
}
|
|
}
|
|
@@ -2773,7 +2788,7 @@ public class OrderServiceImpl implements OrderService {
|
|
}
|
|
}
|
|
|
|
|
|
// 判断此sku是否参加活动 并计算活动积分
|
|
// 判断此sku是否参加活动 并计算活动积分
|
|
- getGiftScore(activityGiftScore, bigDecimal, mkActivitiesEntityMap, sku, orderGiftScoreRulesVo,number);
|
|
|
|
|
|
+ getGiftScore(activityGiftScore, bigDecimal, zsjfActivitiesEntityMap, jfdkActivitiesEntityMap, sku, orderGiftScoreRulesVo,number);
|
|
giftGoodsScoreDetailMap.put(sku, orderGiftScoreRulesVo);
|
|
giftGoodsScoreDetailMap.put(sku, orderGiftScoreRulesVo);
|
|
}
|
|
}
|
|
|
|
|
|
@@ -2824,15 +2839,14 @@ public class OrderServiceImpl implements OrderService {
|
|
Integer beforeScoreInteger = (Integer) param.get("beforeScore");
|
|
Integer beforeScoreInteger = (Integer) param.get("beforeScore");
|
|
Integer afterScoreStrInteger = (Integer) param.get("afterScore");
|
|
Integer afterScoreStrInteger = (Integer) param.get("afterScore");
|
|
int deductionScore = org.springframework.util.StringUtils.isEmpty((String) param.get("deductionScore")) ? 0 : Integer.parseInt((String) param.get("deductionScore"));
|
|
int deductionScore = org.springframework.util.StringUtils.isEmpty((String) param.get("deductionScore")) ? 0 : Integer.parseInt((String) param.get("deductionScore"));
|
|
- //会员手机号
|
|
|
|
- String consigneePhone = String.valueOf(param.get("consigneePhone"));
|
|
|
|
|
|
+ String memberPhone = String.valueOf(param.get("memberPhone"));
|
|
BigDecimal scoreDeductionPrice = new BigDecimal(org.springframework.util.StringUtils.isEmpty(param.get("scoreDeductionPrice").toString()) ? "0" : param.get("scoreDeductionPrice").toString());
|
|
BigDecimal scoreDeductionPrice = new BigDecimal(org.springframework.util.StringUtils.isEmpty(param.get("scoreDeductionPrice").toString()) ? "0" : param.get("scoreDeductionPrice").toString());
|
|
consumptionRecords.setBeforeScore(beforeScoreInteger);
|
|
consumptionRecords.setBeforeScore(beforeScoreInteger);
|
|
consumptionRecords.setAfterScore(afterScoreStrInteger);
|
|
consumptionRecords.setAfterScore(afterScoreStrInteger);
|
|
consumptionRecords.setOrderTotalPrice(order.getActual_price());
|
|
consumptionRecords.setOrderTotalPrice(order.getActual_price());
|
|
consumptionRecords.setScoreDeductionPrice(scoreDeductionPrice);
|
|
consumptionRecords.setScoreDeductionPrice(scoreDeductionPrice);
|
|
consumptionRecords.setMemberCode(memberCode);
|
|
consumptionRecords.setMemberCode(memberCode);
|
|
- consumptionRecords.setMemberPhone(consigneePhone);
|
|
|
|
|
|
+ consumptionRecords.setMemberPhone(memberPhone);
|
|
consumptionRecords.setOrderGiftScore(memberScore.get());
|
|
consumptionRecords.setOrderGiftScore(memberScore.get());
|
|
consumptionRecords.setActivityGiftScore(activityGiftScore.get());
|
|
consumptionRecords.setActivityGiftScore(activityGiftScore.get());
|
|
consumptionRecords.setDeductionScore(deductionScore);
|
|
consumptionRecords.setDeductionScore(deductionScore);
|
|
@@ -2842,7 +2856,7 @@ public class OrderServiceImpl implements OrderService {
|
|
|
|
|
|
if (!org.springframework.util.StringUtils.isEmpty(memberCode)) {
|
|
if (!org.springframework.util.StringUtils.isEmpty(memberCode)) {
|
|
// 同步会员订单消费记录
|
|
// 同步会员订单消费记录
|
|
- syncMemberConsumeRecord(consigneePhone, order, deductionScore);
|
|
|
|
|
|
+ syncMemberConsumeRecord(memberPhone, order, deductionScore);
|
|
if (deductionScore > 0) {
|
|
if (deductionScore > 0) {
|
|
// 积分变动接口,下单扣减
|
|
// 积分变动接口,下单扣减
|
|
syncMemberScoreChangeRecord(openId, order, deductionScore,null, "下单扣减", queryGoodsVOList, giftGoodsScoreDetailMap, HaiKongMemberScoreChangeEventEnum.SUBTRACT.getEvent());
|
|
syncMemberScoreChangeRecord(openId, order, deductionScore,null, "下单扣减", queryGoodsVOList, giftGoodsScoreDetailMap, HaiKongMemberScoreChangeEventEnum.SUBTRACT.getEvent());
|
|
@@ -2897,14 +2911,28 @@ public class OrderServiceImpl implements OrderService {
|
|
* 计算sku实际赠送积分 和 订单总赠送积分
|
|
* 计算sku实际赠送积分 和 订单总赠送积分
|
|
* @param activityGiftScore
|
|
* @param activityGiftScore
|
|
* @param baseScore
|
|
* @param baseScore
|
|
- * @param mkActivitiesEntityMap
|
|
|
|
|
|
+ * @param zsjfActivitiesEntityMap
|
|
|
|
+ * @param jfdkActivitiesEntityMap
|
|
* @param sku
|
|
* @param sku
|
|
*/
|
|
*/
|
|
private void getGiftScore(AtomicReference<Integer> activityGiftScore, BigDecimal baseScore
|
|
private void getGiftScore(AtomicReference<Integer> activityGiftScore, BigDecimal baseScore
|
|
- , Map<String, MkActivitiesPresentIntegralEntity> mkActivitiesEntityMap, String sku, OrderGiftScoreRulesVo orderGiftScoreRulesVo,Integer number) {
|
|
|
|
- if(mkActivitiesEntityMap.containsKey(sku)){
|
|
|
|
|
|
+ , Map<String, MkActivitiesPresentIntegralEntity> zsjfActivitiesEntityMap , Map<String, MkActivitiesPresentIntegralEntity> jfdkActivitiesEntityMap, String sku, OrderGiftScoreRulesVo orderGiftScoreRulesVo,Integer number) {
|
|
|
|
+ if(zsjfActivitiesEntityMap.containsKey(sku)){
|
|
|
|
+
|
|
// 存在表示它参加赠送积分活动
|
|
// 存在表示它参加赠送积分活动
|
|
- MkActivitiesPresentIntegralEntity mkActivitiesPresentIntegralEntity = mkActivitiesEntityMap.get(sku);
|
|
|
|
|
|
+ MkActivitiesPresentIntegralEntity mkActivitiesPresentIntegralEntity = zsjfActivitiesEntityMap.get(sku);
|
|
|
|
+
|
|
|
|
+ // 首先判断是否与积分抵扣互斥
|
|
|
|
+ // 如果互斥 判断是否参与积分抵扣活动 若参与则不赠送积分
|
|
|
|
+ if(Constants.PromotionActivityRejectEnum.REJECT.getCode()
|
|
|
|
+ .equals(mkActivitiesPresentIntegralEntity.getRejectScore())){
|
|
|
|
+ // 设置为互斥 则要查询这个sku是否有参与积分抵扣活动 如果有 则直接返回不赠送积分 如果没有
|
|
|
|
+ MkActivitiesPresentIntegralEntity jfdkActivities = jfdkActivitiesEntityMap.get(sku);
|
|
|
|
+ if(!Objects.isNull(jfdkActivities)){
|
|
|
|
+ // 不为空表示参与了积分抵扣 又互斥 则不进行积分赠送
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
// 计算活动积分
|
|
// 计算活动积分
|
|
if(ActivityGiveTypeEnum.FIXED_VALUE.getCode().equals(mkActivitiesPresentIntegralEntity.getActivityGiveType())){
|
|
if(ActivityGiveTypeEnum.FIXED_VALUE.getCode().equals(mkActivitiesPresentIntegralEntity.getActivityGiveType())){
|
|
// 固定值 那赠送积分就是固定值
|
|
// 固定值 那赠送积分就是固定值
|
|
@@ -3692,7 +3720,7 @@ public class OrderServiceImpl implements OrderService {
|
|
// CountDownLatch cdl = new CountDownLatch(1);
|
|
// CountDownLatch cdl = new CountDownLatch(1);
|
|
// service.submit(()-> {
|
|
// service.submit(()-> {
|
|
// try {
|
|
// try {
|
|
- orderDao.updateOrderRefunding(order.getId());
|
|
|
|
|
|
+ orderDao.updateOrderRefunding(order.getId());
|
|
// } finally {
|
|
// } finally {
|
|
// cdl.countDown();
|
|
// cdl.countDown();
|
|
// }
|
|
// }
|
|
@@ -3843,7 +3871,7 @@ public class OrderServiceImpl implements OrderService {
|
|
private void vipIntegralGoBack(OrderEntity order) throws Exception{
|
|
private void vipIntegralGoBack(OrderEntity order) throws Exception{
|
|
List<IntegralGoBackEntity> changeRecordEntityList = haiKongMemberScoreChangeRecordService.queryIntegralGoBack(order.getOrderSn());
|
|
List<IntegralGoBackEntity> changeRecordEntityList = haiKongMemberScoreChangeRecordService.queryIntegralGoBack(order.getOrderSn());
|
|
for(IntegralGoBackEntity integralGoBackEntity:changeRecordEntityList) {
|
|
for(IntegralGoBackEntity integralGoBackEntity:changeRecordEntityList) {
|
|
- String integralGoBackEntityMsg = JSON.toJSONString(integralGoBackEntity);
|
|
|
|
|
|
+ String integralGoBackEntityMsg = JSON.toJSONString(integralGoBackEntity);
|
|
String responseMsg = haiKongMemberTemplate.rollbackMemberScore(integralGoBackEntityMsg);
|
|
String responseMsg = haiKongMemberTemplate.rollbackMemberScore(integralGoBackEntityMsg);
|
|
Map<String, Object> res = JSON.parseObject(responseMsg, Map.class);
|
|
Map<String, Object> res = JSON.parseObject(responseMsg, Map.class);
|
|
LOGGER.info("=======> [vipIntegralGoBack-----调用会员系统积分全量回退接口数据]" + responseMsg);
|
|
LOGGER.info("=======> [vipIntegralGoBack-----调用会员系统积分全量回退接口数据]" + responseMsg);
|
|
@@ -4318,86 +4346,86 @@ public class OrderServiceImpl implements OrderService {
|
|
|
|
|
|
@Override
|
|
@Override
|
|
public Ticket printMsgEwb(long id, String sessionId) {
|
|
public Ticket printMsgEwb(long id, String sessionId) {
|
|
- OrderEntity orderEntity = queryInfos(id);
|
|
|
|
-
|
|
|
|
- List<OrderGoodsEntity> orderGoodsEntityList = orderEntity.getOrderGoodsEntityList();
|
|
|
|
- // 获取门店
|
|
|
|
- StoreEntity storeEntity = storeDao.queryObject(orderEntity.getStoreId());
|
|
|
|
- // 获取清关信息
|
|
|
|
- OrderProcessRecordEntity orderProcessRecordEntity =
|
|
|
|
- orderProcessRecordDao.queryObjectByOrderSn(orderEntity.getOrderSn());
|
|
|
|
-
|
|
|
|
- // 小票头
|
|
|
|
- TicketHead head = new TicketHead();
|
|
|
|
- head.setTitle(storeEntity.getStoreName());
|
|
|
|
- //门店地址
|
|
|
|
- head.setStoreAddress(storeEntity.getStoreAddress());
|
|
|
|
- // head.setMemberId(orderEntity.getUserName().toString());
|
|
|
|
- head.setOrderId(orderEntity.getOrderSn());
|
|
|
|
- head.setTradeTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss EEE").format(orderEntity.getPayTime()));
|
|
|
|
-
|
|
|
|
- // 商品信息
|
|
|
|
- Integer goodsTotal = 0; // 商品总个数
|
|
|
|
- BigDecimal total = Constant.ZERO; // 商品总计
|
|
|
|
- BigDecimal taxTotal = Constant.ZERO; //税费总计
|
|
|
|
- List<Goods> goodsList = new ArrayList<>();
|
|
|
|
- BigDecimal discountedPrice = Constant.ZERO; // 优惠金额
|
|
|
|
- for (OrderGoodsEntity orderGoods : orderGoodsEntityList) {
|
|
|
|
- goodsTotal += orderGoods.getNumber();
|
|
|
|
- total = total.add(orderGoods.getRetailPrice().multiply(new BigDecimal(orderGoods.getNumber())))
|
|
|
|
- .setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
|
- discountedPrice = discountedPrice.add(orderGoods.getDiscountedPrice());
|
|
|
|
-
|
|
|
|
- GoodsEntity goodsEntity = goodsService.queryObject(orderGoods.getGoodsId());
|
|
|
|
- BigDecimal goodsTax = CalculateTax.calculateFinalTax(goodsEntity, orderGoods.getRetailPrice(), goodsService).setScale(3, RoundingMode.HALF_UP);
|
|
|
|
- goodsTax = goodsTax.multiply(new BigDecimal(orderGoods.getNumber())).setScale(2, RoundingMode.HALF_UP);
|
|
|
|
- taxTotal = taxTotal.add(goodsTax).setScale(2, RoundingMode.HALF_UP);
|
|
|
|
-
|
|
|
|
- Goods goods = new Goods(orderGoods.getGoodsName(),
|
|
|
|
- orderGoods.getRetailPrice().toString(), // 含税价
|
|
|
|
|
|
+ OrderEntity orderEntity = queryInfos(id);
|
|
|
|
+
|
|
|
|
+ List<OrderGoodsEntity> orderGoodsEntityList = orderEntity.getOrderGoodsEntityList();
|
|
|
|
+ // 获取门店
|
|
|
|
+ StoreEntity storeEntity = storeDao.queryObject(orderEntity.getStoreId());
|
|
|
|
+ // 获取清关信息
|
|
|
|
+ OrderProcessRecordEntity orderProcessRecordEntity =
|
|
|
|
+ orderProcessRecordDao.queryObjectByOrderSn(orderEntity.getOrderSn());
|
|
|
|
+
|
|
|
|
+ // 小票头
|
|
|
|
+ TicketHead head = new TicketHead();
|
|
|
|
+ head.setTitle(storeEntity.getStoreName());
|
|
|
|
+ //门店地址
|
|
|
|
+ head.setStoreAddress(storeEntity.getStoreAddress());
|
|
|
|
+ // head.setMemberId(orderEntity.getUserName().toString());
|
|
|
|
+ head.setOrderId(orderEntity.getOrderSn());
|
|
|
|
+ head.setTradeTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss EEE").format(orderEntity.getPayTime()));
|
|
|
|
+
|
|
|
|
+ // 商品信息
|
|
|
|
+ Integer goodsTotal = 0; // 商品总个数
|
|
|
|
+ BigDecimal total = Constant.ZERO; // 商品总计
|
|
|
|
+ BigDecimal taxTotal = Constant.ZERO; //税费总计
|
|
|
|
+ List<Goods> goodsList = new ArrayList<>();
|
|
|
|
+ BigDecimal discountedPrice = Constant.ZERO; // 优惠金额
|
|
|
|
+ for (OrderGoodsEntity orderGoods : orderGoodsEntityList) {
|
|
|
|
+ goodsTotal += orderGoods.getNumber();
|
|
|
|
+ total = total.add(orderGoods.getRetailPrice().multiply(new BigDecimal(orderGoods.getNumber())))
|
|
|
|
+ .setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
|
+ discountedPrice = discountedPrice.add(orderGoods.getDiscountedPrice());
|
|
|
|
+
|
|
|
|
+ GoodsEntity goodsEntity = goodsService.queryObject(orderGoods.getGoodsId());
|
|
|
|
+ BigDecimal goodsTax = CalculateTax.calculateFinalTax(goodsEntity, orderGoods.getRetailPrice(), goodsService).setScale(3, RoundingMode.HALF_UP);
|
|
|
|
+ goodsTax = goodsTax.multiply(new BigDecimal(orderGoods.getNumber())).setScale(2, RoundingMode.HALF_UP);
|
|
|
|
+ taxTotal = taxTotal.add(goodsTax).setScale(2, RoundingMode.HALF_UP);
|
|
|
|
+
|
|
|
|
+ Goods goods = new Goods(orderGoods.getGoodsName(),
|
|
|
|
+ orderGoods.getRetailPrice().toString(), // 含税价
|
|
// beforeTaxPrice.toString(),// 税前价
|
|
// beforeTaxPrice.toString(),// 税前价
|
|
- goodsTax.toString(),
|
|
|
|
- orderGoods.getNumber().toString(),
|
|
|
|
- new BigDecimal(orderGoods.getNumber()).multiply(orderGoods.getRetailPrice()).setScale(2, RoundingMode.HALF_UP).toString(),
|
|
|
|
- orderGoods.getDiscountedPrice().toString());
|
|
|
|
- goodsList.add(goods);
|
|
|
|
- }
|
|
|
|
|
|
+ goodsTax.toString(),
|
|
|
|
+ orderGoods.getNumber().toString(),
|
|
|
|
+ new BigDecimal(orderGoods.getNumber()).multiply(orderGoods.getRetailPrice()).setScale(2, RoundingMode.HALF_UP).toString(),
|
|
|
|
+ orderGoods.getDiscountedPrice().toString());
|
|
|
|
+ goodsList.add(goods);
|
|
|
|
+ }
|
|
|
|
|
|
- // 收银信息
|
|
|
|
- CashInfo cashInfo = new CashInfo();
|
|
|
|
- cashInfo.setGoodsTotal(goodsTotal.toString());
|
|
|
|
- cashInfo.setTotal(total.setScale(2, BigDecimal.ROUND_HALF_UP).toString());
|
|
|
|
- cashInfo.setTaxTotal(taxTotal.setScale(2, BigDecimal.ROUND_HALF_UP).toString());
|
|
|
|
- cashInfo.setReceipts(orderEntity.getActualPrice().setScale(2, BigDecimal.ROUND_HALF_UP).toString());
|
|
|
|
- cashInfo.setOddChange(discountedPrice.toString());
|
|
|
|
- cashInfo.setCoupon(orderEntity.getCouponPrice().setScale(2, BigDecimal.ROUND_HALF_UP).toString());
|
|
|
|
- cashInfo.setFreight(
|
|
|
|
- new BigDecimal(orderEntity.getFreightPrice()).setScale(2, BigDecimal.ROUND_HALF_UP).toString());
|
|
|
|
- if ("alipay".equals(orderEntity.getPayFlag())) {
|
|
|
|
- cashInfo.setPaymentMode("支付宝支付");
|
|
|
|
- } else {
|
|
|
|
- cashInfo.setPaymentMode("微信支付");
|
|
|
|
|
|
+ // 收银信息
|
|
|
|
+ CashInfo cashInfo = new CashInfo();
|
|
|
|
+ cashInfo.setGoodsTotal(goodsTotal.toString());
|
|
|
|
+ cashInfo.setTotal(total.setScale(2, BigDecimal.ROUND_HALF_UP).toString());
|
|
|
|
+ cashInfo.setTaxTotal(taxTotal.setScale(2, BigDecimal.ROUND_HALF_UP).toString());
|
|
|
|
+ cashInfo.setReceipts(orderEntity.getActualPrice().setScale(2, BigDecimal.ROUND_HALF_UP).toString());
|
|
|
|
+ cashInfo.setOddChange(discountedPrice.toString());
|
|
|
|
+ cashInfo.setCoupon(orderEntity.getCouponPrice().setScale(2, BigDecimal.ROUND_HALF_UP).toString());
|
|
|
|
+ cashInfo.setFreight(
|
|
|
|
+ new BigDecimal(orderEntity.getFreightPrice()).setScale(2, BigDecimal.ROUND_HALF_UP).toString());
|
|
|
|
+ if ("alipay".equals(orderEntity.getPayFlag())) {
|
|
|
|
+ cashInfo.setPaymentMode("支付宝支付");
|
|
|
|
+ } else {
|
|
|
|
+ cashInfo.setPaymentMode("微信支付");
|
|
|
|
+ }
|
|
|
|
+ // 海关清单
|
|
|
|
+ CusListing cusListing = new CusListing();
|
|
|
|
+ cusListing.setOrderId(orderEntity.getOrderSn());
|
|
|
|
+ if (!orderEntity.getOrderBizType().equalsIgnoreCase(Dict.orderBizType.item_11.getItem())) {
|
|
|
|
+ cusListing.setWaybillId(orderProcessRecordEntity.getLogisticsNo());
|
|
|
|
+ cusListing.setInvtNo(orderProcessRecordEntity.getInvtNo()==null?"":orderProcessRecordEntity.getInvtNo());
|
|
|
|
+
|
|
|
|
+ cusListing.setConsignee(orderEntity.getConsignee());
|
|
|
|
+ // 脱敏设置
|
|
|
|
+ if (StringUtils.isNotEmpty(cusListing.getConsignee()) && cusListing.getConsignee().length() > 1) {
|
|
|
|
+ cusListing.setConsignee(new StringBuilder(cusListing.getConsignee()).replace(1, 2, "*").toString());
|
|
}
|
|
}
|
|
- // 海关清单
|
|
|
|
- CusListing cusListing = new CusListing();
|
|
|
|
- cusListing.setOrderId(orderEntity.getOrderSn());
|
|
|
|
- if (!orderEntity.getOrderBizType().equalsIgnoreCase(Dict.orderBizType.item_11.getItem())) {
|
|
|
|
- cusListing.setWaybillId(orderProcessRecordEntity.getLogisticsNo());
|
|
|
|
- cusListing.setInvtNo(orderProcessRecordEntity.getInvtNo()==null?"":orderProcessRecordEntity.getInvtNo());
|
|
|
|
-
|
|
|
|
- cusListing.setConsignee(orderEntity.getConsignee());
|
|
|
|
- // 脱敏设置
|
|
|
|
- if (StringUtils.isNotEmpty(cusListing.getConsignee()) && cusListing.getConsignee().length() > 1) {
|
|
|
|
- cusListing.setConsignee(new StringBuilder(cusListing.getConsignee()).replace(1, 2, "*").toString());
|
|
|
|
- }
|
|
|
|
- cusListing.setConsigneeTel(orderEntity.getMobile());
|
|
|
|
- if (StringUtils.isNotEmpty(cusListing.getConsigneeTel())) {
|
|
|
|
- cusListing.setConsigneeTel(new StringBuilder(cusListing.getConsigneeTel()).replace(3, 7, "****").toString());
|
|
|
|
- }
|
|
|
|
|
|
+ cusListing.setConsigneeTel(orderEntity.getMobile());
|
|
|
|
+ if (StringUtils.isNotEmpty(cusListing.getConsigneeTel())) {
|
|
|
|
+ cusListing.setConsigneeTel(new StringBuilder(cusListing.getConsigneeTel()).replace(3, 7, "****").toString());
|
|
}
|
|
}
|
|
- cusListing.setOriginAddress(PrintTicketPropertiesBuilder.instance().getAddress());
|
|
|
|
- cusListing.setDeliveryAddress(storeEntity.getStoreAddress());
|
|
|
|
- // 尝试在取货码表中查询数据,如果有的话就改变状态
|
|
|
|
|
|
+ }
|
|
|
|
+ cusListing.setOriginAddress(PrintTicketPropertiesBuilder.instance().getAddress());
|
|
|
|
+ cusListing.setDeliveryAddress(storeEntity.getStoreAddress());
|
|
|
|
+ // 尝试在取货码表中查询数据,如果有的话就改变状态
|
|
// String orderSn = orderEntity.getOrderSn();
|
|
// String orderSn = orderEntity.getOrderSn();
|
|
// PickUpCodeEntity pickUpCodeEntity = pickUpCodeService.queryObject(orderSn);
|
|
// PickUpCodeEntity pickUpCodeEntity = pickUpCodeService.queryObject(orderSn);
|
|
// if (pickUpCodeEntity != null) {
|
|
// if (pickUpCodeEntity != null) {
|
|
@@ -4405,48 +4433,48 @@ public class OrderServiceImpl implements OrderService {
|
|
// pickUpCodeService.update(pickUpCodeEntity);
|
|
// pickUpCodeService.update(pickUpCodeEntity);
|
|
//
|
|
//
|
|
// }
|
|
// }
|
|
- TicketMailInfo mailInfo = new TicketMailInfo();
|
|
|
|
- String exprNo = orderProcessRecordEntity.getLogisticsNo();
|
|
|
|
- if (StringUtils.isNullOrEmpty(exprNo)) {
|
|
|
|
- throw new RRException("快递面单为空,请联系客服");
|
|
|
|
- }
|
|
|
|
- //图片地址
|
|
|
|
- mailInfo.setStoreImgUrl(storeEntity.getStoreImgUrl()==null?"/statics/img/cw_qrcode.png":storeEntity.getStoreImgUrl().trim());
|
|
|
|
- mailInfo.setExprNo(exprNo);
|
|
|
|
- String logoUrl = "/statics/img/sf_img.jpg";
|
|
|
|
|
|
+ TicketMailInfo mailInfo = new TicketMailInfo();
|
|
|
|
+ String exprNo = orderProcessRecordEntity.getLogisticsNo();
|
|
|
|
+ if (StringUtils.isNullOrEmpty(exprNo)) {
|
|
|
|
+ throw new RRException("快递面单为空,请联系客服");
|
|
|
|
+ }
|
|
|
|
+ //图片地址
|
|
|
|
+ mailInfo.setStoreImgUrl(storeEntity.getStoreImgUrl()==null?"/statics/img/cw_qrcode.png":storeEntity.getStoreImgUrl().trim());
|
|
|
|
+ mailInfo.setExprNo(exprNo);
|
|
|
|
+ String logoUrl = "/statics/img/sf_img.jpg";
|
|
|
|
|
|
- Map<String, String> logoMap = new HashMap<>();
|
|
|
|
- logoMap.put("yto", "/statics/img/yto_logo.jpg");
|
|
|
|
- logoMap.put("best", "/statics/img/bestex_logo3.png");
|
|
|
|
- logoMap.put("sf", "/statics/img/sf_img.jpg");
|
|
|
|
- if (StringUtils.isNotEmpty(orderEntity.getShippingCode()) && logoMap.containsKey(orderEntity.getShippingCode())) {
|
|
|
|
- logoUrl = logoMap.get(orderEntity.getShippingCode());
|
|
|
|
- }
|
|
|
|
|
|
+ Map<String, String> logoMap = new HashMap<>();
|
|
|
|
+ logoMap.put("yto", "/statics/img/yto_logo.jpg");
|
|
|
|
+ logoMap.put("best", "/statics/img/bestex_logo3.png");
|
|
|
|
+ logoMap.put("sf", "/statics/img/sf_img.jpg");
|
|
|
|
+ if (StringUtils.isNotEmpty(orderEntity.getShippingCode()) && logoMap.containsKey(orderEntity.getShippingCode())) {
|
|
|
|
+ logoUrl = logoMap.get(orderEntity.getShippingCode());
|
|
|
|
+ }
|
|
|
|
|
|
- mailInfo.setExprLogoUrl(logoUrl);
|
|
|
|
- byte[] barCode128 = BarcodeUtil.generateBarCode128(exprNo, 6.0D, null, true, false);
|
|
|
|
- String exprNoBase64Img = new String(Base64.getEncoder().encode(barCode128));
|
|
|
|
- mailInfo.setShopTel(storeEntity.getTelephoneNumber());
|
|
|
|
-
|
|
|
|
- AddressEntity addressEntity = addressDao.queryStoreAddress(storeEntity.getId(),Dict.addressStatus.item_1.getItem());
|
|
|
|
- // 发货人
|
|
|
|
- mailInfo.setSenderTel(addressEntity.getTelNumber());
|
|
|
|
- mailInfo.setSenderName("CW澳洲大药房");
|
|
|
|
- mailInfo.setSenderProvince(addressEntity.getProvinceName());
|
|
|
|
- mailInfo.setSenderCity(addressEntity.getCityName());
|
|
|
|
- mailInfo.setSenderDistrict(addressEntity.getCountyName());
|
|
|
|
- mailInfo.setSenderAddress(addressEntity.getDetailInfo());
|
|
|
|
-
|
|
|
|
- // 收货人
|
|
|
|
- mailInfo.setConsigneeMob(new StringBuilder(orderEntity.getMobile()).replace(3, 7, "****").toString());
|
|
|
|
- mailInfo.setConsigneeName(new StringBuilder(orderEntity.getConsignee()).replace(1, 2, "*").toString());
|
|
|
|
- mailInfo.setConsigneeProvince(orderEntity.getProvince());
|
|
|
|
- mailInfo.setConsigneeCity(orderEntity.getCity());
|
|
|
|
- mailInfo.setConsigneeDistrict(orderEntity.getDistrict());
|
|
|
|
- mailInfo.setConsigneeAddress(orderEntity.getAddress());
|
|
|
|
|
|
+ mailInfo.setExprLogoUrl(logoUrl);
|
|
|
|
+ byte[] barCode128 = BarcodeUtil.generateBarCode128(exprNo, 6.0D, null, true, false);
|
|
|
|
+ String exprNoBase64Img = new String(Base64.getEncoder().encode(barCode128));
|
|
|
|
+ mailInfo.setShopTel(storeEntity.getTelephoneNumber());
|
|
|
|
|
|
- mailInfo.setExprNoBase64Img(exprNoBase64Img);
|
|
|
|
- return TicketPrintUtil.print(head, goodsList, cashInfo, cusListing, mailInfo);
|
|
|
|
|
|
+ AddressEntity addressEntity = addressDao.queryStoreAddress(storeEntity.getId(),Dict.addressStatus.item_1.getItem());
|
|
|
|
+ // 发货人
|
|
|
|
+ mailInfo.setSenderTel(addressEntity.getTelNumber());
|
|
|
|
+ mailInfo.setSenderName("CW澳洲大药房");
|
|
|
|
+ mailInfo.setSenderProvince(addressEntity.getProvinceName());
|
|
|
|
+ mailInfo.setSenderCity(addressEntity.getCityName());
|
|
|
|
+ mailInfo.setSenderDistrict(addressEntity.getCountyName());
|
|
|
|
+ mailInfo.setSenderAddress(addressEntity.getDetailInfo());
|
|
|
|
+
|
|
|
|
+ // 收货人
|
|
|
|
+ mailInfo.setConsigneeMob(new StringBuilder(orderEntity.getMobile()).replace(3, 7, "****").toString());
|
|
|
|
+ mailInfo.setConsigneeName(new StringBuilder(orderEntity.getConsignee()).replace(1, 2, "*").toString());
|
|
|
|
+ mailInfo.setConsigneeProvince(orderEntity.getProvince());
|
|
|
|
+ mailInfo.setConsigneeCity(orderEntity.getCity());
|
|
|
|
+ mailInfo.setConsigneeDistrict(orderEntity.getDistrict());
|
|
|
|
+ mailInfo.setConsigneeAddress(orderEntity.getAddress());
|
|
|
|
+
|
|
|
|
+ mailInfo.setExprNoBase64Img(exprNoBase64Img);
|
|
|
|
+ return TicketPrintUtil.print(head, goodsList, cashInfo, cusListing, mailInfo);
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|