package com.xcong.excoin.modules.datamove; import cn.hutool.core.convert.Convert; import cn.hutool.core.date.DateUtil; import cn.hutool.core.lang.Snowflake; import cn.hutool.core.util.IdUtil; import com.alibaba.fastjson.JSONObject; import com.baomidou.dynamic.datasource.annotation.DS; import com.xcong.excoin.modules.datamove.dao.*; import com.xcong.excoin.modules.datamove.entity.*; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.math.BigDecimal; import java.util.Date; import java.util.List; import java.util.Map; /** * @author wzy * @date 2021-07-01 **/ @Service public class DataMoveService { @Autowired private JdbcTemplate jdbcTemplate; @Autowired private JhyInfoMapper jhyInfoMapper; @Autowired private JhyOrderMapper jhyOrderMapper; @Autowired private JhyOrderItemsMapper jhyOrderItemsMapper; public T mapToBane(Map map, Class t) { String s = JSONObject.toJSONString(map); return JSONObject.parseObject(s, t); } @DS("slave") public List> oldJhyTest() { return jdbcTemplate.queryForList("select * from zx_jhy"); } public void newJhyInfoTest(List> datas) { for (Map data : datas) { JhyInfo jhyInfo = mapToBane(data, JhyInfo.class); String date = data.get("create_time").toString(); jhyInfo.setCreatedTime(DateUtil.parse(date, "yyyy-MM-dd HH:mm:ss")); jhyInfo.setCardPos(data.get("card").toString()); jhyInfo.setIsJhy("1"); jhyInfo.setStatus(2); jhyInfoMapper.insert(jhyInfo); } } @DS("slave") public List> oldOrderTest() { List> maps = jdbcTemplate.queryForList("select * from zx_jhy_order_info"); for (Map map : maps) { List> goods = jdbcTemplate.queryForList("select * from zx_jhy_order_goods where order_id=" + map.get("id")); if (map.get("jhy") != null && !"0".equals(map.get("jhy").toString())) { Map jhy = jdbcTemplate.queryForMap("select * from zx_users where id=" + map.get("jhy")); if (jhy != null) { map.put("jhy_id", jhy.get("yhid")); } } map.put("items", goods); } return maps; } @Transactional(rollbackFor = Exception.class) public void newOrderTest(List> datas) { for (Map data : datas) { JhyOrder jhyOrder = mapToBane(data, JhyOrder.class); String createTime = data.get("create_time").toString(); jhyOrder.setCreatedTime(DateUtil.parse(createTime, "yyyy-MM-dd HH:mm:ss")); jhyOrder.setArea(data.get("address_area").toString()); jhyOrder.setOrderNo(data.get("order_id").toString()); jhyOrder.setAddress(data.get("address").toString()); String udpateTime = data.get("update_time").toString(); jhyOrder.setReceivingTime(DateUtil.parse(udpateTime, "yyyy-MM-dd HH:mm:ss")); jhyOrder.setWeight(data.get("remark").toString()); jhyOrder.setIsCommented(null); String reserveDate = data.get("create_time").toString(); jhyOrder.setReserveDate(DateUtil.parse(reserveDate, "yyyy-MM-dd")); jhyOrder.setIsAnonymous(null); jhyOrder.setUsername(data.get("username").toString()); switch (jhyOrder.getStatus()) { case 4 : jhyOrder.setStatus(3); break; case 6: jhyOrder.setStatus(5); } Map userId = jdbcTemplate.queryForMap("select * from xzx_user_info where user_id='" + jhyOrder.getUserId() + "'"); jhyOrder.setPhone(userId.get("mobile_phone").toString()); jhyOrderMapper.insert(jhyOrder); boolean flag = false; List> items = (List>) data.get("items"); for (Map item : items) { JhyOrderItems jhyOrderItems = mapToBane(item, JhyOrderItems.class); jhyOrderItems.setOrderId(jhyOrder.getId()); if (jhyOrder.getStatus() != 5) { String total = data.get("ordersum").toString(); jhyOrderItems.setScore(total); if (items.size() > 1) { if (!flag) { jhyOrderItems.setWeight(new BigDecimal(total).divide(BigDecimal.valueOf(40), 2, BigDecimal.ROUND_DOWN)); } else { jhyOrderItems.setWeight(BigDecimal.ZERO); jhyOrderItems.setScore("0"); } flag = true; } else { jhyOrderItems.setWeight(new BigDecimal(total).divide(BigDecimal.valueOf(40), 2, BigDecimal.ROUND_DOWN)); } } jhyOrderItemsMapper.insert(jhyOrderItems); } } } @DS("slave") public List> oldShopOrderList() { List> maps = jdbcTemplate.queryForList("select * from zx_order_info"); for (Map map : maps) { Map sku = jdbcTemplate.queryForMap("select * from zx_order_goods where order_id=" + map.get("id")); Map user = jdbcTemplate.queryForMap("select * from zx_users where id=" + map.get("user_id")); System.out.println(sku.get("sku_id")); Map goods = jdbcTemplate.queryForMap("select * from zx_goods where id=" + sku.get("sku_id")); map.put("user_id", user.get("yhid")); map.put("sku", sku); map.put("goods", goods); } return maps; } public String generate(String prefix,long datacenterId){ Snowflake snowflake = IdUtil.getSnowflake(Convert.toLong(0), datacenterId); return prefix+snowflake.nextIdStr(); } @Autowired private ScoreOrderMapper scoreOrderMapper; @Autowired private ScoreExpressInfoMapper scoreExpressInfoMapper; @Autowired private ScoreOrderDetailsMapper scoreOrderDetailsMapper; public void newShopOrderList(List> maps) { for (Map map : maps) { Map goods = (Map) map.get("goods"); ScoreOrder scoreOrder = mapToBane(map, ScoreOrder.class); scoreOrder.setGoodsName(goods.get("name").toString()); scoreOrder.setOrderNo(generate("JF", 9)); scoreOrder.setCnt(Integer.parseInt(map.get("number").toString())); scoreOrder.setTotalPrice(new BigDecimal(map.get("total_mount").toString())); String createTime = map.get("create_time").toString(); scoreOrder.setCreatedTime(DateUtil.parse(createTime, "yyyy-MM-dd HH:mm:ss")); scoreOrder.setIsFinish(2); scoreOrderMapper.insert(scoreOrder); ScoreExpressInfo expressInfo = new ScoreExpressInfo(); expressInfo.setOrderId(scoreOrder.getId()); expressInfo.setAddress(map.get("address").toString()); expressInfo.setPhone(map.get("mobile").toString()); expressInfo.setUsername(map.get("username").toString()); expressInfo.setCreatedTime(DateUtil.parse(createTime, "yyyy-MM-dd HH:mm:ss")); expressInfo.setUserId(scoreOrder.getUserId()); scoreExpressInfoMapper.insert(expressInfo); Map sku = (Map) map.get("sku"); ScoreOrderDetails orderDetails = new ScoreOrderDetails(); orderDetails.setOrderId(scoreOrder.getId()); orderDetails.setCnt(scoreOrder.getCnt()); orderDetails.setUnitPrice(new BigDecimal(goods.get("present_price").toString())); orderDetails.setStyle(goods.get("style").toString()); orderDetails.setSku(goods.get("specs").toString()); orderDetails.setThumb("https://pic.cnxzx.com/media/" + goods.get("image_url")); orderDetails.setTotalPrice(new BigDecimal(map.get("total_mount").toString())); orderDetails.setGoodsName(goods.get("name").toString()); scoreOrderDetailsMapper.insert(orderDetails); } } @DS("slave") public List> oldScoreDetails() { List> maps = jdbcTemplate.queryForList("select * from zx_integral_records"); for (Map map : maps) { Map user = jdbcTemplate.queryForMap("select * from zx_users where id=" + map.get("user_id")); map.put("user_id", user.get("yhid")); } return maps; } @Autowired private ScoreDetailsMapper scoreDetailsMapper; public void newScoreDetails(List> maps) { for (Map map : maps) { ScoreDetails scoreDetails = mapToBane(map, ScoreDetails.class); String createTime = map.get("create_time").toString(); scoreDetails.setCreatedTime(DateUtil.parse(createTime, "yyyy-MM-dd HH:mm:ss")); scoreDetails.setCurrentScore(new BigDecimal(map.get("present").toString())); scoreDetails.setChangeScore(new BigDecimal(map.get("change").toString())); scoreDetails.setOriginalScore(new BigDecimal(map.get("original").toString())); scoreDetails.setType(Integer.parseInt(map.get("source_type").toString())); scoreDetails.setOrderNo(map.get("order_id").toString()); scoreDetailsMapper.insert(scoreDetails); } } @DS("slave") public List> oldScore() { return jdbcTemplate.queryForList("select * from zx_users where integral!=0"); } public void newScore(List> maps) { for (Map map : maps) { jdbcTemplate.update("update xzx_account_info set collect_score=" + map.get("integral") + " where user_id='" + map.get("yhid") + "'"); } } }