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> T mapToBane(Map<String, Object> map, Class<T> t) {
|
String s = JSONObject.toJSONString(map);
|
return JSONObject.parseObject(s, t);
|
}
|
|
@DS("slave")
|
public List<Map<String, Object>> oldJhyTest() {
|
return jdbcTemplate.queryForList("select * from zx_jhy");
|
}
|
|
public void newJhyInfoTest(List<Map<String, Object>> datas) {
|
for (Map<String, Object> 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<Map<String, Object>> oldOrderTest() {
|
List<Map<String, Object>> maps = jdbcTemplate.queryForList("select * from zx_jhy_order_info");
|
for (Map<String, Object> map : maps) {
|
List<Map<String, Object>> 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<String, Object> 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<Map<String, Object>> datas) {
|
for (Map<String, Object> 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<String, Object> 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<Map<String, Object>> items = (List<Map<String, Object>>) data.get("items");
|
for (Map<String, Object> 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<Map<String, Object>> oldShopOrderList() {
|
List<Map<String, Object>> maps = jdbcTemplate.queryForList("select * from zx_order_info");
|
for (Map<String, Object> map : maps) {
|
Map<String, Object> sku = jdbcTemplate.queryForMap("select * from zx_order_goods where order_id=" + map.get("id"));
|
|
Map<String, Object> user = jdbcTemplate.queryForMap("select * from zx_users where id=" + map.get("user_id"));
|
|
System.out.println(sku.get("sku_id"));
|
Map<String, Object> 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<Map<String, Object>> maps) {
|
for (Map<String, Object> map : maps) {
|
Map<String, Object> goods = (Map<String, Object>) 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<String, Object> sku = (Map<String, Object>) 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<Map<String, Object>> oldScoreDetails() {
|
List<Map<String, Object>> maps = jdbcTemplate.queryForList("select * from zx_integral_records");
|
for (Map<String, Object> map : maps) {
|
Map<String, Object> 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<Map<String, Object>> maps) {
|
for (Map<String, Object> 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<Map<String, Object>> oldScore() {
|
return jdbcTemplate.queryForList("select * from zx_users where integral!=0");
|
}
|
|
|
public void newScore(List<Map<String, Object>> maps) {
|
for (Map<String, Object> map : maps) {
|
jdbcTemplate.update("update xzx_account_info set collect_score=" + map.get("integral") + " where user_id='" + map.get("yhid") + "'");
|
}
|
}
|
}
|