package com.ruoyi.order.controller;
|
|
import com.alibaba.fastjson2.JSONObject;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.ruoyi.common.core.constant.Constants;
|
import com.ruoyi.common.core.domain.R;
|
import com.ruoyi.order.entity.*;
|
import com.ruoyi.order.service.*;
|
import com.ruoyi.order.vo.OldDataPhotoVO;
|
import io.swagger.annotations.Api;
|
import io.swagger.annotations.ApiOperation;
|
import org.springframework.web.bind.annotation.GetMapping;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RequestParam;
|
import org.springframework.web.bind.annotation.RestController;
|
|
import javax.annotation.Resource;
|
import java.math.BigDecimal;
|
import java.text.ParseException;
|
import java.text.SimpleDateFormat;
|
import java.util.ArrayList;
|
import java.util.Date;
|
import java.util.List;
|
|
/**
|
* @author hjl
|
* @since 2024-07-18 16:34
|
*/
|
@RestController
|
@RequestMapping("/oldData")
|
@Api(tags = {"数据迁移"})
|
public class OldDataController {
|
|
@Resource
|
private DataOrderService dataOrderService;
|
@Resource
|
private OrderService orderService;
|
@Resource
|
private EvaluateService evaluateService;
|
@Resource
|
private ServeRecordService serveRecordService;
|
@Resource
|
private DataTechnicianService technicianService;
|
@Resource
|
private DataGoodsService goodsService;
|
|
@GetMapping("/order")
|
@ApiOperation(value = "订单数据迁移", tags = {"数据迁移"})
|
public R<String> oldData(@RequestParam("index") Integer index,
|
@RequestParam("pageNum") Integer pageNum,
|
@RequestParam("pageSize") Integer pageSize) {
|
if (null != index && index.equals(8080)) {
|
try {
|
List<Order> orderList = new ArrayList<>();
|
List<Evaluate> evaluateList = new ArrayList<>();
|
List<ServeRecord> serveRecordList = new ArrayList<>();
|
List<DataOrder> list = dataOrderService.page(Page.of(pageNum, pageSize)).getRecords();
|
for (DataOrder data : list) {
|
Long id = data.getId();
|
Boolean orderType = data.getOrderType();
|
String orderNo = data.getOrderNo();
|
Long productId = data.getProductId();
|
Long uid = data.getUid();
|
Long serverUid = data.getServerUid();
|
BigDecimal price = data.getPrice();
|
BigDecimal btPrice = data.getBtPrice();
|
String username = data.getUsername();
|
String phone = data.getPhone();
|
String city = data.getCity();
|
String address = data.getAddress();
|
BigDecimal latitude = data.getLatitude();
|
BigDecimal longitude = data.getLongitude();
|
Date smTime = data.getSmTime();
|
String remark = data.getRemark();
|
String cancelRemark = data.getCancelRemark();
|
Integer pjLevel = data.getPjLevel();
|
String pjRemark = data.getPjRemark();
|
String completeTime = data.getCompleteTime();
|
String yhqrtp = data.getYhqrtp();
|
String jjmptp = data.getJjmptp();
|
String njtp = data.getNjtp();
|
String wjhqttp = data.getWjhqttp();
|
Integer status = data.getStatus();
|
Boolean pjStatus = data.getPjStatus();
|
// 新订单信息
|
Order order = new Order();
|
order.setId(String.valueOf(id));
|
order.setCity(city);
|
order.setOrderNumber(orderNo);
|
order.setServeId(serverUid.intValue());
|
// 回收服务信息
|
DataGoods dataGoods = goodsService.getById(productId);
|
if (null != dataGoods) {
|
order.setServeName(dataGoods.getName());
|
order.setServePrice(new BigDecimal(dataGoods.getPgPrice()));
|
}
|
order.setReservationName(username);
|
order.setReservationPhone(phone);
|
order.setReservationAddress(address);
|
// 时间格式化
|
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:ss");
|
order.setTime(simpleDateFormat.format(smTime));
|
DataTechnician technician = technicianService.getById(serverUid);
|
order.setServerId(serverUid.intValue());
|
if (null != technician) {
|
order.setServerName(technician.getUsername());
|
order.setServerPhone(technician.getPhone());
|
}
|
order.setReservationRemark(remark);
|
if (null != btPrice) {
|
order.setOrderMoney(price.add(btPrice));
|
} else {
|
order.setOrderMoney(price);
|
}
|
if (Constants.ONE.equals(status)) {
|
order.setState(Constants.ZERO);
|
} else if (Constants.TWO.equals(status)) {
|
order.setState(Constants.ONE);
|
} else if (Constants.THREE.equals(status)) {
|
order.setState(Constants.TWO);
|
} else if (Constants.FOUR.equals(status)) {
|
order.setState(Constants.THREE);
|
} else if (Constants.FIVE.equals(status)) {
|
order.setState(Constants.FOUR);
|
order.setCancelReason(cancelRemark);
|
}
|
order.setAcceptTime(new Date());
|
if (orderType) {
|
order.setType(Constants.ZERO);
|
} else {
|
order.setType(Constants.ONE);
|
}
|
order.setLongitude(longitude.doubleValue());
|
order.setLatitude(latitude.doubleValue());
|
order.setArriveTime(new Date());
|
// 时间转换
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
try {
|
Date date = sdf.parse(completeTime);
|
order.setCompleteTime(date);
|
} catch (ParseException e) {
|
order.setCompleteTime(null);
|
}
|
order.setIsWithdrawal(Constants.ONE);
|
order.setSubsidy(btPrice);
|
order.setCreateTime(new Date());
|
order.setUpdateTime(new Date());
|
order.setIsDelete(Constants.ZERO);
|
orderList.add(order);
|
// 评价信息
|
if (pjStatus) {
|
Evaluate evaluate = new Evaluate();
|
evaluate.setUserId(uid.intValue());
|
evaluate.setUserPhone(phone);
|
evaluate.setOrderId(order.getId());
|
evaluate.setContent(pjRemark);
|
evaluate.setWorkerId(serverUid.intValue());
|
evaluate.setStarRating(Double.valueOf(pjLevel));
|
evaluate.setCreateTime(new Date());
|
evaluate.setUpdateTime(new Date());
|
evaluate.setIsDelete(Constants.ZERO);
|
evaluateList.add(evaluate);
|
}
|
// 服务记录信息(回收拍照)
|
if (Constants.FOUR.equals(status)) {
|
// json数据转换
|
String photo;
|
try {
|
OldDataPhotoVO photo1 = JSONObject.parseObject(yhqrtp, OldDataPhotoVO.class);
|
OldDataPhotoVO photo2 = JSONObject.parseObject(jjmptp, OldDataPhotoVO.class);
|
OldDataPhotoVO photo3 = JSONObject.parseObject(njtp, OldDataPhotoVO.class);
|
OldDataPhotoVO photo4 = JSONObject.parseObject(wjhqttp, OldDataPhotoVO.class);
|
photo = photo1.getUrl() + "," + photo2.getUrl() + "," + photo3.getUrl() + "," + photo4.getUrl();
|
} catch (Exception e) {
|
photo = null;
|
}
|
ServeRecord serveRecord = new ServeRecord();
|
serveRecord.setOrderId(order.getId());
|
serveRecord.setPhoto(photo);
|
serveRecord.setCreateTime(new Date());
|
serveRecord.setUpdateTime(new Date());
|
serveRecord.setIsDelete(Constants.ZERO);
|
serveRecordList.add(serveRecord);
|
}
|
}
|
if (!orderList.isEmpty()) {
|
orderService.saveBatch(orderList);
|
}
|
if (!evaluateList.isEmpty()) {
|
evaluateService.saveBatch(evaluateList);
|
}
|
if (!serveRecordList.isEmpty()) {
|
serveRecordService.saveBatch(serveRecordList);
|
}
|
} catch (Exception e) {
|
return R.fail(e.getMessage());
|
}
|
}
|
return R.ok();
|
}
|
|
|
}
|