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 oldData(@RequestParam("index") Integer index, @RequestParam("pageNum") Integer pageNum, @RequestParam("pageSize") Integer pageSize) { if (null != index && index.equals(8080)) { try { List orderList = new ArrayList<>(); List evaluateList = new ArrayList<>(); List serveRecordList = new ArrayList<>(); List 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(); } }