| | |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | |
| | | import java.io.UnsupportedEncodingException; |
| | | import java.math.BigDecimal; |
| | | import java.security.NoSuchAlgorithmException; |
| | | import java.util.*; |
| | | |
| | |
| | | vipInfoIds.put(oldId, sysVipInfo.getId()); |
| | | sysVipInfoService.addVipDefaultCard(sysVipInfo.getId()); |
| | | } |
| | | |
| | | redisClient.saveMapValue("vip_info", vipInfoIds); |
| | | } |
| | | } |
| | | |
| | |
| | | |
| | | @DS("slave") |
| | | public List<SysOrder> orderOld() { |
| | | return null; |
| | | List<Map<String, Object>> maps = jdbcTemplate.queryForList("select * from sys_order"); |
| | | List<SysOrder> orders = mapsToListBean(maps, SysOrder.class); |
| | | |
| | | |
| | | Map<String, Integer> goodsSku = getRedisIds("shopping_goods_sku"); |
| | | Map<String, Integer> goodProj = getRedisIds("shopping_goods_proj"); |
| | | Map<String, Integer> goodTc = getRedisIds("shopping_goods_tc"); |
| | | Map<String, Integer> goodCZK = getRedisIds("shopping_goods_czk"); |
| | | Map<String, Integer> goodZHK = getRedisIds("shopping_goods_zhk"); |
| | | Map<String, Integer> shopIds = getRedisIds("shopId"); |
| | | Map<String, Integer> sysUsers = getRedisIds("sys_users"); |
| | | Map<String, Integer> vipInfos = getRedisIds("vip_info"); |
| | | for (SysOrder order : orders) { |
| | | List<Map<String, Object>> itemsMap = jdbcTemplate.queryForList("select * from sys_order_item where ORDER_ID=" + order.getId()); |
| | | |
| | | Integer shopId = shopIds.get(order.getShopId().toString()); |
| | | order.setShopId(shopId.longValue()); |
| | | |
| | | Integer statffId = sysUsers.get(order.getStaffId().toString()); |
| | | if (statffId != null) { |
| | | order.setStaffId(statffId.longValue()); |
| | | } else { |
| | | order.setStaffId(-order.getStaffId()); |
| | | } |
| | | Integer vipId = vipInfos.get(order.getVipId().toString()); |
| | | if (vipId != null) { |
| | | order.setVipId(vipId.longValue()); |
| | | } else { |
| | | order.setVipId(-order.getVipId()); |
| | | } |
| | | |
| | | order.setCompanyId(companyId); |
| | | |
| | | List<SysOrderItem> items = mapsToListBean(itemsMap, SysOrderItem.class); |
| | | |
| | | Double cardPay = 0D; |
| | | Double cashPay = 0D; |
| | | Double arrears = 0D; |
| | | Map<Long, Long> shoppingGoodsIds = new HashMap<>(); |
| | | if (CollUtil.isNotEmpty(items)) { |
| | | Long goodsId = items.get(0).getGoodsId(); |
| | | Map<String, Object> goods = jdbcTemplate.queryForMap("select * from shopping_goods where id=" + goodsId); |
| | | order.setShopShortName((String) goods.get("name")); |
| | | for (SysOrderItem item : items) { |
| | | Double itemCard = item.getCardPay() == null ? 0D : item.getCardPay(); |
| | | Double itemCash = item.getCashPay() == null ? 0D : item.getCashPay(); |
| | | Double itemArrears = item.getArrears() == null ? 0D : item.getArrears(); |
| | | |
| | | cardPay += itemCard; |
| | | cashPay += itemCash; |
| | | arrears += itemArrears; |
| | | |
| | | if (itemCard != 0) { |
| | | item.setPayMethod("划扣"); |
| | | } else { |
| | | item.setPayMethod("现金"); |
| | | } |
| | | |
| | | Long oldID = item.getGoodsId(); |
| | | switch (item.getType()) { |
| | | case "家居产品" : |
| | | Map<String, Object> skuMap = jdbcTemplate.queryForMap("select * from shopping_goods_assemble where id=" + item.getAssembleId()); |
| | | Long skuId = (Long) skuMap.get("assemble_sku_id"); |
| | | Integer skuGoodsId = goodsSku.get(skuId.toString()); |
| | | if (skuGoodsId != null) { |
| | | item.setGoodsId(skuGoodsId.longValue()); |
| | | } else { |
| | | item.setGoodsId(-item.getAssembleId()); |
| | | } |
| | | break; |
| | | case "项目" : |
| | | Map<String, Object> projMap = jdbcTemplate.queryForMap("select * from shopping_goods_assemble where id=" + item.getAssembleId()); |
| | | Long projId = (Long) projMap.get("assemble_proj_id"); |
| | | Integer projGoodsId = goodProj.get(projId.toString()); |
| | | if (projGoodsId != null) { |
| | | item.setGoodsId(projGoodsId.longValue()); |
| | | } else { |
| | | item.setGoodsId(-item.getAssembleId()); |
| | | } |
| | | break; |
| | | case "套餐" : |
| | | Integer tcId = goodTc.get(item.getGoodsId().toString()); |
| | | if (tcId != null) { |
| | | item.setGoodsId(tcId.longValue()); |
| | | } else { |
| | | item.setGoodsId(-item.getGoodsId()); |
| | | } |
| | | break; |
| | | case "充值卡" : |
| | | Integer czkId = goodCZK.get(item.getGoodsId().toString()); |
| | | if (czkId != null) { |
| | | item.setGoodsId(czkId.longValue()); |
| | | } else { |
| | | item.setGoodsId(-item.getGoodsId()); |
| | | } |
| | | break; |
| | | case "综合卡" : |
| | | Integer zhkId = goodZHK.get(item.getGoodsId().toString()); |
| | | if (zhkId != null) { |
| | | item.setGoodsId(zhkId.longValue()); |
| | | } else { |
| | | item.setGoodsId(-item.getGoodsId()); |
| | | } |
| | | break; |
| | | default: |
| | | } |
| | | |
| | | shoppingGoodsIds.put(oldID, item.getGoodsId()); |
| | | } |
| | | order.setItems(items); |
| | | } |
| | | |
| | | List<SysOrderFlow> flows = new ArrayList<>(); |
| | | if (cardPay != 0D) { |
| | | flows.add(setOrderFLow(order, "储值卡", cardPay, 1)); |
| | | } |
| | | |
| | | if (cashPay != 0D) { |
| | | flows.add(setOrderFLow(order, "现金支付", cashPay, 1)); |
| | | } |
| | | |
| | | if (arrears != 0D) { |
| | | flows.add(setOrderFLow(order, "欠款", arrears, 1)); |
| | | } |
| | | order.setFlows(flows); |
| | | |
| | | List<Map<String, Object>> achievesMap = jdbcTemplate.queryForList("select sale_id, beault_id, shop_id, datatime, order_id, order_item_id, shopping_goods_id, vip_id, order_type, sum(t1) as t1 from achieve_new where order_type='订单' and order_id="+ order.getId() + " group by sale_id, beault_id, shop_id, datatime, order_id, order_item_id, shopping_goods_id, vip_id, order_type"); |
| | | if (CollUtil.isNotEmpty(achievesMap)) { |
| | | List<AchieveNew> achieves = mapsToListBean(achievesMap, AchieveNew.class); |
| | | for (AchieveNew achieve : achieves) { |
| | | Integer achiShopId = shopIds.get(achieve.getShopId().toString()); |
| | | achieve.setShopId(achiShopId.longValue()); |
| | | |
| | | if (achieve.getBeaultId() == null) { |
| | | achieve.setBeaultId(achieve.getSaleId()); |
| | | achieve.setAchieveType("顾问业绩"); |
| | | } else { |
| | | achieve.setAchieveType("美疗师业绩"); |
| | | } |
| | | Integer beaultId = sysUsers.get(achieve.getBeaultId().toString()); |
| | | if (beaultId != null) { |
| | | achieve.setBeaultId(beaultId.longValue()); |
| | | } else { |
| | | achieve.setBeaultId(-achieve.getBeaultId()); |
| | | } |
| | | |
| | | Integer saleId = sysUsers.get(achieve.getSaleId().toString()); |
| | | if (saleId != null) { |
| | | achieve.setSaleId(saleId.longValue()); |
| | | } else { |
| | | achieve.setSaleId(-achieve.getSaleId()); |
| | | } |
| | | |
| | | Integer achiVipId = vipInfos.get(achieve.getVipId().toString()); |
| | | if (achiVipId != null) { |
| | | achieve.setVipId(achiVipId.longValue()); |
| | | } else { |
| | | achieve.setVipId(-achieve.getVipId()); |
| | | } |
| | | achieve.setGoodsCash(Double.parseDouble(achieve.getT1())); |
| | | achieve.setCompanyId(companyId); |
| | | achieve.setShoppingGoodsId(shoppingGoodsIds.get(achieve.getShoppingGoodsId())); |
| | | |
| | | } |
| | | order.setAchieveNews(achieves); |
| | | } |
| | | } |
| | | return orders; |
| | | } |
| | | |
| | | public void orderNew(List<SysOrder> list) { |
| | | public SysOrderFlow setOrderFLow(SysOrder sysOrder, String type, Double amount, int index) { |
| | | SysOrderFlow flow = new SysOrderFlow(); |
| | | flow.setFlowContent(sysOrder.getShopShortName() + "等" + sysOrder.getItems().size() + "件产品"); |
| | | flow.setFlowType(SysOrderFlow.FLOW_TYPE_BUY); |
| | | flow.setAmount(new BigDecimal(amount)); |
| | | flow.setFlowNo("F" + sysOrder.getOrderNo() + "-" + index); |
| | | flow.setVipId(sysOrder.getVipId()); |
| | | flow.setShopId(sysOrder.getShopId()); |
| | | flow.setCompanyId(sysOrder.getCompanyId()); |
| | | return flow; |
| | | } |
| | | |
| | | @Autowired |
| | | private SysOrderDao sysOrderDao; |
| | | @Autowired |
| | | private SysOrderItemDao sysOrderItemDao; |
| | | @Autowired |
| | | private SysOrderFlowDao sysOrderFlowDao; |
| | | @Autowired |
| | | private AchieveNewDao achieveNewDao; |
| | | |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public void orderNew(List<SysOrder> list) { |
| | | if (CollUtil.isNotEmpty(list)) { |
| | | Map<Long, Long> orderIds = new HashMap<>(); |
| | | Map<Long, Long> itemIds = new HashMap<>(); |
| | | |
| | | for (SysOrder sysOrder : list) { |
| | | Long oldOrderId = sysOrder.getId(); |
| | | sysOrder.setId(null); |
| | | sysOrderDao.insert(sysOrder); |
| | | orderIds.put(oldOrderId, sysOrder.getId()); |
| | | |
| | | for (SysOrderItem item : sysOrder.getItems()) { |
| | | Long oldItemId = item.getId(); |
| | | item.setOrderId(sysOrder.getId()); |
| | | item.setId(null); |
| | | sysOrderItemDao.insert(item); |
| | | itemIds.put(oldItemId, item.getId()); |
| | | } |
| | | |
| | | for (SysOrderFlow flow : sysOrder.getFlows()) { |
| | | flow.setOrderId(oldOrderId); |
| | | sysOrderFlowDao.insert(flow); |
| | | } |
| | | |
| | | if (CollUtil.isNotEmpty(sysOrder.getAchieveNews())) { |
| | | for (AchieveNew achieveNew : sysOrder.getAchieveNews()) { |
| | | achieveNew.setOrderId(oldOrderId); |
| | | Long item = itemIds.get(achieveNew.getOrderItemId()); |
| | | achieveNew.setOrderItemId(item); |
| | | } |
| | | |
| | | achieveNewDao.batchInsert(sysOrder.getAchieveNews()); |
| | | } |
| | | } |
| | | |
| | | redisClient.saveMapValue("order", orderIds); |
| | | redisClient.saveMapValue("order_item", itemIds); |
| | | } |
| | | } |
| | | |
| | | @DS("slave") |
| | | public List<SysBedInfo> bedInfoOld() { |
| | | List<Map<String, Object>> maps = jdbcTemplate.queryForList("select * from sys_bed_info"); |
| | | List<SysBedInfo> beds = mapsToListBean(maps, SysBedInfo.class); |
| | | |
| | | Map<String, Integer> shopIds = getRedisIds("shopId"); |
| | | for (SysBedInfo bed : beds) { |
| | | Integer shopId = shopIds.get(bed.getShopId().toString()); |
| | | if (shopId != null) { |
| | | bed.setShopId(shopId.longValue()); |
| | | } else { |
| | | bed.setShopId(-bed.getShopId()); |
| | | } |
| | | } |
| | | return beds; |
| | | } |
| | | |
| | | @Autowired |
| | | private SysBedInfoDao sysBedInfoDao; |
| | | |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public void bedInfoNew(List<SysBedInfo> list) { |
| | | if (CollUtil.isNotEmpty(list)) { |
| | | Map<Long, Long> map = new HashMap<>(); |
| | | for (SysBedInfo bed : list) { |
| | | Long oldId = bed.getId(); |
| | | bed.setId(null); |
| | | sysBedInfoDao.insert(bed); |
| | | map.put(oldId, bed.getId()); |
| | | } |
| | | |
| | | redisClient.saveMapValue("bed_info", map); |
| | | } |
| | | } |
| | | |
| | | } |