| | |
| | | import com.matrix.core.constance.MatrixConstance; |
| | | import com.matrix.core.exception.GlobleException; |
| | | import com.matrix.core.pojo.PaginationVO; |
| | | import com.matrix.core.tools.DateUtil; |
| | | import com.matrix.core.tools.LogUtil; |
| | | import com.matrix.core.tools.WebUtil; |
| | | import com.matrix.system.app.dto.OrderListDto; |
| | |
| | | import com.matrix.system.enums.OperationFunctionEnum; |
| | | import com.matrix.system.hive.bean.*; |
| | | import com.matrix.system.hive.dao.*; |
| | | import com.matrix.system.hive.dto.*; |
| | | import com.matrix.system.hive.dto.GoodsSealLimitDto; |
| | | import com.matrix.system.hive.dto.MoneyCardOperationDto; |
| | | import com.matrix.system.hive.dto.ProjUseOperationDto; |
| | | import com.matrix.system.hive.dto.SysOrderItemDto; |
| | | import com.matrix.system.hive.plugin.util.CollectionUtils; |
| | | import com.matrix.system.hive.plugin.util.MoneyUtil; |
| | | import com.matrix.system.hive.pojo.CzXkVo; |
| | | import com.matrix.system.hive.service.*; |
| | | import com.matrix.system.padApi.dto.PadOrderListDto; |
| | | import com.matrix.system.padApi.vo.PadOrderDetailVo; |
| | | import com.matrix.system.score.service.ScoreVipDetailService; |
| | | import com.matrix.system.shopXcx.mqTask.AsyncMessageRouting; |
| | | import com.matrix.system.wechart.templateMsg.UniformMsgParam; |
| | |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | |
| | | import javax.validation.constraints.NotEmpty; |
| | | import java.math.BigDecimal; |
| | | import java.util.*; |
| | | import java.util.stream.Collectors; |
| | |
| | | @Autowired |
| | | private SysOrderItemDao orderItemDao; |
| | | @Autowired |
| | | private SysProjUseDao sysProjUseDao; |
| | | private SysProjUseService sysProjUseService; |
| | | |
| | | |
| | | @Autowired |
| | | private SysStoreInfoDao storeInfoDao; |
| | | @Autowired |
| | | private CodeService codeService; |
| | | @Autowired |
| | | SysVipInfoDao sysVipInfoDao; |
| | | @Autowired |
| | |
| | | @Autowired |
| | | private AchieveNewDao achieveNewDao; |
| | | |
| | | @Autowired |
| | | private WarehouseDao warehouseDao; |
| | | |
| | | @Autowired |
| | | private ShoppingGoodsService shoppingGoodsService; |
| | | |
| | | @Autowired |
| | | private SysOrderFlowDao sysOrderFlowDao; |
| | | |
| | | @Autowired |
| | | private SysSupplierInfoDao sysSupplierInfoDao; |
| | | |
| | | @Autowired |
| | | private SysInstoreInfoDao sysInstoreInfoDao; |
| | | |
| | | @Autowired |
| | | private SysInstoreDetailDao sysInstoreDetailDao; |
| | | |
| | | @Autowired |
| | | private SysInstoreInfoService sysInstoreInfoService; |
| | | |
| | | @Autowired |
| | | BusParameterSettingsDao parameterSettingsDao; |
| | |
| | | |
| | | // 设置会员充值卡使用情况 |
| | | sysOrderServiceHelper.addMoneyCardUse(pageOrder); |
| | | |
| | | // 改变客户项目套餐使用情况 |
| | | sysOrderServiceHelper.addTaocanProj(pageOrder); |
| | | |
| | |
| | | |
| | | //新增会员卡金额 |
| | | MoneyCardUse cardUser = moneyCardUseDao.selectVipCard(czVo.getVipId()); |
| | | MoneyCardPayDto moneyCardPayDto = new MoneyCardPayDto(); |
| | | moneyCardPayDto.setRealMoney(MoneyUtil.add(cardUser.getRealMoney(), czVo.getBjmoney())); |
| | | moneyCardPayDto.setGiftMoney(MoneyUtil.add(cardUser.getGiftMoney(), czVo.getGiftMoney())); |
| | | moneyCardPayDto.setCarUseId(cardUser.getId()); |
| | | moneyCardPayDto.setOrderId(order.getId()); |
| | | moneyCardPayDto.setOrderNo(order.getOrderNo()); |
| | | moneyCardPayDto.setType(MoneyCardUseFlow.USE_TYPE_CZ); |
| | | moneyCardUseService.changeMoneyCard(Arrays.asList(moneyCardPayDto)); |
| | | MoneyCardOperationDto moneyCardOperationDto = new MoneyCardOperationDto(); |
| | | moneyCardOperationDto.setRealMoney(czVo.getBjmoney()); |
| | | moneyCardOperationDto.setGiftMoney(czVo.getGiftMoney()); |
| | | moneyCardOperationDto.setCarUseId(cardUser.getId()); |
| | | moneyCardOperationDto.setOrderId(order.getId()); |
| | | moneyCardOperationDto.setOrderNo(order.getOrderNo()); |
| | | moneyCardOperationDto.setType(MoneyCardUseFlow.USE_TYPE_CZ); |
| | | |
| | | SysUsers user = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY); |
| | | moneyCardOperationDto.setUpdateUser(user.getSuId()); |
| | | moneyCardUseService.changeMoneyCard(Arrays.asList(moneyCardOperationDto)); |
| | | |
| | | // 更新订单主表信息 |
| | | payEndUpdateOrderInfo(order); |
| | |
| | | } |
| | | |
| | | @Override |
| | | public List<PadOrderDetailVo> findPadApiOrderListInPage(PadOrderListDto orderListDto, PaginationVO pageVo) { |
| | | List<PadOrderDetailVo> padOrderDetailVos = sysOrderDao.selectPadApiOrderListInPage(orderListDto, pageVo); |
| | | if(CollUtil.isNotEmpty(padOrderDetailVos)){ |
| | | for(PadOrderDetailVo padOrderDetailVo : padOrderDetailVos){ |
| | | padOrderDetailVo.setItems(orderItemDao.selectApiOrderDetailItemsByOrderId(Long.parseLong(padOrderDetailVo.getOrderId()))); |
| | | } |
| | | } |
| | | |
| | | return padOrderDetailVos; |
| | | } |
| | | |
| | | @Override |
| | | public int findApiOrderListTotal(OrderListDto orderListDto) { |
| | | return sysOrderDao.selectApiOrderListTotal(orderListDto); |
| | | } |
| | | |
| | | @Override |
| | | public int findPadApiOrderListTotal(PadOrderListDto orderListDto) { |
| | | return sysOrderDao.selectPadApiOrderListTotal(orderListDto); |
| | | } |
| | | |
| | | @Override |
| | |
| | | @Override |
| | | public void orderTk(SysOrder sysOrder) { |
| | | |
| | | SysOrder oldOrder = sysOrderDao.selectById(sysOrder.getOldOrderId()); |
| | | //创建并保存退款订单 |
| | | sysOrder = sysOrderServiceHelper.createTkOrder(sysOrder); |
| | | // 添加订单收款流水 |
| | |
| | | //退款退套餐退项目 |
| | | refundProjUse(sysOrder); |
| | | //删除积分 |
| | | SysOrder oldOrder = sysOrderDao.selectById(sysOrder.getOldOrderId()); |
| | | scoreVipDetailService.removeByBusinessId(oldOrder.getVipId(), oldOrder.getId()); |
| | | |
| | | // 设置业绩 |
| | |
| | | || Dictionary.SHOPPING_GOODS_TYPE_XM.equals(item.getType())) { |
| | | ProjUseOperationDto dto = new ProjUseOperationDto(); |
| | | dto.setGoodsId(item.getGoodsId()); |
| | | dto.setCount(item.getCount()); |
| | | dto.setCount(item.getRefundCount()); |
| | | dto.setOrderItemId(item.getOldItemId()); |
| | | dto.setUpdateUserId(user.getSuId()); |
| | | projUseDtoList.add(dto); |
| | | |
| | | }else if (Dictionary.SHOPPING_GOODS_TYPE_CZK.equals(item.getType())) { |
| | | }else if (Dictionary.SHOPPING_GOODS_TYPE_CZK.equals(item.getType())) { |
| | | MoneyCardOperationDto moneyCardOperationDto = new MoneyCardOperationDto(); |
| | | moneyCardOperationDto.setOrderId(sysOrder.getId()); |
| | | moneyCardOperationDto.setOrderNo(sysOrder.getOrderNo()); |
| | | moneyCardOperationDto.setOrderItemId(item.getOldItemId()); |
| | | moneyCardOperationDto.setType(MoneyCardUseFlow.USE_TYPE_ORDRE_CANCEL); |
| | | moneyCardOperationDto.setType(MoneyCardUseFlow.USE_TYPE_ORDRE_TK); |
| | | moneyCardOperationDto.setUpdateUser(user.getSuId()); |
| | | moneyCardOperationDto.setOrderNo(sysOrder.getOrderNo()); |
| | | moneyCardOperationDto.setRealMoney(item.getZkPrice()); |
| | | moneyCardOperationDtos.add(moneyCardOperationDto); |
| | | } |
| | | } |
| | | |
| | | BusParameterSettings manageStockSetting = busParameterSettingsDao.selectCompanyParamByCode(AppConstance.WAREHOUSE_MANAGE_STOCK, sysOrder.getCompanyId()); |
| | | if (AppConstance.IS_Y.equals(manageStockSetting.getParamValue())) { |
| | | // if (AppConstance.IS_Y.equals(manageStockSetting.getParamValue())) { |
| | | if (BooleanEnum.TRUE.getValue() == manageStockSetting.getIntParamValue()) { |
| | | // 家居产品退库存 |
| | | if (CollectionUtils.isNotEmpty(returnGoodsList)) { |
| | | LogUtil.info("订单退款:退产品库存:{}", JSON.toJSONString(returnGoodsList)); |
| | | refundInstore(returnGoodsList); |
| | | sysOrderServiceHelper.refundInstore(returnGoodsList); |
| | | } |
| | | } |
| | | |
| | |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 退款入库 |
| | | */ |
| | | private void refundInstore(@NotEmpty List<SysOrderItem> items) { |
| | | SysUsers user = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY); |
| | | SysSupplierInfo supplierInfo = new SysSupplierInfo(); |
| | | supplierInfo.setShopId(user.getShopId()); |
| | | supplierInfo = sysSupplierInfoDao.selectByModel(supplierInfo).get(0); |
| | | |
| | | Warehouse warehouse = warehouseDao.findShopWarehouse(user.getShopId()).get(0); |
| | | SysInstoreInfo instoreInfo = new SysInstoreInfo(); |
| | | instoreInfo.setInstoreType(SysInstoreInfo.INSTORE_TYPE_RETURN); |
| | | instoreInfo.setInstoreDate(new Date()); |
| | | instoreInfo.setSupplierId(supplierInfo.getId().toString()); |
| | | instoreInfo.setStoreId(warehouse.getId()); |
| | | instoreInfo.setCheckStatus(Dictionary.CHECK_STATUS_DSH); |
| | | // 设置入库单编号 |
| | | instoreInfo.setInstoreId(DateUtil.getTimeMark()); |
| | | instoreInfo.setShopId(user.getShopId()); |
| | | instoreInfo.setCompanyId(user.getCompanyId()); |
| | | sysInstoreInfoDao.insert(instoreInfo); |
| | | |
| | | Double total = 0.0; |
| | | List<SysInstoreDetail> instoreDetails = new ArrayList<>(); |
| | | for (SysOrderItem item : items) { |
| | | ShoppingGoods goods = shoppingGoodsDao.selectById(item.getGoodsId()); |
| | | SysInstoreDetail sysInstoreDetail = new SysInstoreDetail(); |
| | | sysInstoreDetail.setAmount(item.getCount().doubleValue()); |
| | | sysInstoreDetail.setPrice(item.getZkPrice()); |
| | | sysInstoreDetail.setSkuId(goods.getId()); |
| | | |
| | | total = MoneyUtil.add(MoneyUtil.mul(Double.parseDouble(sysInstoreDetail.getAmount() + ""), sysInstoreDetail.getPrice()), total); |
| | | sysInstoreDetail.setInstoreId(instoreInfo.getId()); |
| | | // 设置小计 |
| | | sysInstoreDetail.setPriceTotal(MoneyUtil.mul(Double.parseDouble(sysInstoreDetail.getAmount() + ""), sysInstoreDetail.getPrice())); |
| | | instoreDetails.add(sysInstoreDetail); |
| | | |
| | | } |
| | | instoreInfo.setSumall(total); |
| | | sysInstoreInfoDao.update(instoreInfo); |
| | | sysInstoreDetailDao.batchInsert(instoreDetails); |
| | | |
| | | sysInstoreInfoService.check(instoreInfo); |
| | | } |
| | | |
| | | @Override |
| | | public BigDecimal findVipArrearsByVipId(Long vipId) { |