|
@@ -16,12 +16,14 @@ import com.szwl.model.bo.ResponseModel;
|
|
|
import com.szwl.model.entity.*;
|
|
|
import com.szwl.model.query.OrderStatisticsDTO;
|
|
|
import com.szwl.model.query.Pageable;
|
|
|
+import com.szwl.model.query.TCoinOrderParam;
|
|
|
import com.szwl.model.utils.JsonUtils;
|
|
|
import com.szwl.service.*;
|
|
|
import com.szwl.service.es.EsTCoinOrderService;
|
|
|
import com.szwl.util.HuifuUtils;
|
|
|
import com.szwl.util.IDGenerator;
|
|
|
import io.swagger.annotations.ApiOperation;
|
|
|
+import lombok.extern.slf4j.Slf4j;
|
|
|
import org.apache.commons.lang.StringUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.web.bind.annotation.*;
|
|
@@ -30,6 +32,7 @@ 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.HashMap;
|
|
|
import java.util.List;
|
|
@@ -42,6 +45,7 @@ import java.util.List;
|
|
|
* @author wuhs
|
|
|
* @since 2023-08-29
|
|
|
*/
|
|
|
+@Slf4j
|
|
|
@RestController
|
|
|
@RequestMapping("/tCoinOrder")
|
|
|
public class TCoinOrderController {
|
|
@@ -81,6 +85,131 @@ public class TCoinOrderController {
|
|
|
// return R.ok("同步es成功");
|
|
|
// }
|
|
|
|
|
|
+ @ApiOperation(value = "上传线下/海外纸币器订单")
|
|
|
+ @PostMapping("/newSaveCoinOrder")
|
|
|
+ @ResponseBody
|
|
|
+ public Object newSaveCoinOrder(@RequestBody CoinOrderVO coinOrderVO) {
|
|
|
+ String clientId = coinOrderVO.getClientId();
|
|
|
+ String name = coinOrderVO.getName();
|
|
|
+ Integer payType = coinOrderVO.getPayType();
|
|
|
+ BigDecimal price = coinOrderVO.getPrice();
|
|
|
+ String sn = coinOrderVO.getSn();
|
|
|
+ // no: 商品名称-编号-数量,玫瑰精灵-A01-1,雪糕-I01-1
|
|
|
+ String no = coinOrderVO.getNo();
|
|
|
+ LambdaQueryWrapper<TCoinOrder> queryWrapper = new LambdaQueryWrapper<>();
|
|
|
+ queryWrapper.eq(TCoinOrder::getSn, sn);
|
|
|
+ List<TCoinOrder> coinOrders = coinOrderService.list(queryWrapper);
|
|
|
+ if(coinOrders.size() > 0) {
|
|
|
+ try {
|
|
|
+ esTCoinOrderService.insertData(coinOrders.get(0));
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ return JsonMessage.success("添加线下订单成功");
|
|
|
+ }
|
|
|
+ TEquipment equipment = R.getDataIfSuccess(szwlFeign.findEquipmentByClientId(clientId));
|
|
|
+ String machineType = equipment.getMachineType(); // 设备类型
|
|
|
+
|
|
|
+ Long adminId = equipment.getAdminId();
|
|
|
+ if (adminId == null) {
|
|
|
+ return JsonMessage.error("找不到设备商家");
|
|
|
+ }
|
|
|
+
|
|
|
+ String adminIdStr = String.valueOf(adminId);
|
|
|
+ // 根据 adminId 获取admin信息中的公司类型
|
|
|
+ TAdmin byId = R.getDataIfSuccess(szwlFeign.getAdmin(adminIdStr));
|
|
|
+ String companyType = byId.getCompanyType();
|
|
|
+
|
|
|
+ TCoinOrder coinOrder = new TCoinOrder();
|
|
|
+ coinOrder.setId(IDGenerator.coinOrderID());
|
|
|
+ coinOrder.setType(null);
|
|
|
+ coinOrder.setClientId(clientId);
|
|
|
+ coinOrder.setAdminId(adminId);
|
|
|
+ coinOrder.setProductName(name);
|
|
|
+ coinOrder.setPayType(payType);
|
|
|
+ coinOrder.setPrice(price);
|
|
|
+ coinOrder.setSn(sn);
|
|
|
+ // 线下纸币器订单都是已付款
|
|
|
+ coinOrder.setStatus(1);
|
|
|
+ // 0或null 非空中云汇
|
|
|
+ coinOrder.setIsAir("0");
|
|
|
+ coinOrder.setEquipmentId(equipment.getId());
|
|
|
+
|
|
|
+ // 保存订单明细
|
|
|
+ TOrderDetails tOrderDetails = new TOrderDetails();
|
|
|
+ tOrderDetails.setOrderSn(sn);
|
|
|
+ tOrderDetails.setEquipmentId(equipment.getId());
|
|
|
+ tOrderDetails.setRefundStatus("1");
|
|
|
+ tOrderDetails.setAdminId(adminId);
|
|
|
+
|
|
|
+ // 设备类型
|
|
|
+ if (StringUtils.isNotEmpty(machineType) && machineType.equals("1")) {
|
|
|
+ coinOrder.setMachineType(machineType);
|
|
|
+ tOrderDetails.setMachineType(machineType);
|
|
|
+ } else {
|
|
|
+ coinOrder.setMachineType("0");
|
|
|
+ tOrderDetails.setMachineType("0");
|
|
|
+ }
|
|
|
+ // 公司平台
|
|
|
+ if (StringUtils.isNotEmpty(companyType) && companyType.equals("1")) {
|
|
|
+ coinOrder.setCompanyType(companyType);
|
|
|
+ tOrderDetails.setCompanyType(companyType);
|
|
|
+ } else {
|
|
|
+ coinOrder.setCompanyType("0");
|
|
|
+ tOrderDetails.setCompanyType("0");
|
|
|
+ }
|
|
|
+ // 商品数量
|
|
|
+ if (coinOrderVO.getProductNumber() == null || coinOrderVO.getProductNumber() == 0) {
|
|
|
+ coinOrderVO.setProductNumber(1);
|
|
|
+ } else {
|
|
|
+ coinOrder.setProductNumber(coinOrderVO.getProductNumber());
|
|
|
+ }
|
|
|
+ if (StringUtils.isNotEmpty(coinOrderVO.getCreateDate())) {
|
|
|
+ java.text.SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
|
+ Date date1 = null;
|
|
|
+ try {
|
|
|
+ date1 = formatter.parse(coinOrderVO.getCreateDate());
|
|
|
+ } catch (ParseException e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ coinOrder.setCreateDate(date1);
|
|
|
+ coinOrder.setModifyDate(date1);
|
|
|
+ coinOrder.setPayDate(date1);
|
|
|
+ tOrderDetails.setCreateDate(date1);
|
|
|
+ } else {
|
|
|
+ coinOrder.setCreateDate(new Date());
|
|
|
+ coinOrder.setModifyDate(new Date());
|
|
|
+ coinOrder.setPayDate(new Date());
|
|
|
+ tOrderDetails.setCreateDate(new Date());
|
|
|
+ }
|
|
|
+ coinOrderService.save(coinOrder);
|
|
|
+ try {
|
|
|
+ String[] split = no.split(",");
|
|
|
+ for (String s : split) {
|
|
|
+ String[] strings = s.split("-");
|
|
|
+ // 商品名称
|
|
|
+ String goodName = strings[0];
|
|
|
+ // 商品编号
|
|
|
+ String goodNo = strings[1];
|
|
|
+ // 商品数量
|
|
|
+ Integer productNumber = Integer.valueOf(strings[2]);
|
|
|
+ tOrderDetails.setId(HuifuUtils.initDetailsId());
|
|
|
+ tOrderDetails.setProductNumber(productNumber);
|
|
|
+ tOrderDetails.setProductName(goodName);
|
|
|
+ tOrderDetails.setProductNo(goodNo);
|
|
|
+ orderDetailsService.save(tOrderDetails);
|
|
|
+ }
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ try {
|
|
|
+ esTCoinOrderService.insertData(coinOrder);
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ return JsonMessage.success("添加线下订单成功");
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 保存 线下/海外纸币器 订单
|
|
|
*
|
|
@@ -339,5 +468,49 @@ public class TCoinOrderController {
|
|
|
return jsonObject;
|
|
|
}
|
|
|
|
|
|
+ @PostMapping("/fixOrder")
|
|
|
+ public ResponseModel<?> fixOrder(@RequestBody TCoinOrderParam param) {
|
|
|
+ LambdaQueryWrapper<TCoinOrder> query = Wrappers.lambdaQuery();
|
|
|
+ query.gt(TCoinOrder::getCreateDate,param.getCreateDate_start());
|
|
|
+ query.lt(TCoinOrder::getCreateDate,param.getCreateDate_end());
|
|
|
+ List<TCoinOrder> list = coinOrderService.list(query);
|
|
|
+ ArrayList<String> snList = new ArrayList<>();
|
|
|
+ for (TCoinOrder coinOrder : list) {
|
|
|
+ String sn = coinOrder.getSn();
|
|
|
+ if (!snList.contains(sn)) {
|
|
|
+ LambdaQueryWrapper<TCoinOrder> snQuery = Wrappers.lambdaQuery();
|
|
|
+ snQuery.eq(TCoinOrder::getSn,sn);
|
|
|
+ query.gt(TCoinOrder::getCreateDate,param.getCreateDate_start());
|
|
|
+ query.lt(TCoinOrder::getCreateDate,param.getCreateDate_end());
|
|
|
+ List<TCoinOrder> coinOrderList = coinOrderService.list(snQuery);
|
|
|
+ if(coinOrderList.size() > 1) {
|
|
|
+ snList.add(sn);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if(snList.size() > 0) {
|
|
|
+ for (String s : snList) {
|
|
|
+ try{
|
|
|
+ LambdaQueryWrapper<TCoinOrder> snQuery = Wrappers.lambdaQuery();
|
|
|
+ snQuery.eq(TCoinOrder::getSn,s);
|
|
|
+ List<TCoinOrder> coinOrderList = coinOrderService.list(snQuery);
|
|
|
+ if(coinOrderList.size() > 1) {
|
|
|
+ for(int i = 1; i < coinOrderList.size(); i++) {
|
|
|
+ TCoinOrder coinOrder = coinOrderList.get(i);
|
|
|
+ Long id = coinOrder.getId();
|
|
|
+ coinOrderService.removeById(id);
|
|
|
+ esTCoinOrderService.deleteTableById(String.valueOf(id));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } catch (Exception e) {
|
|
|
+ log.error("ElasticsearchRunner deleteData 发生错误:{}" , e);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return R.ok(snList);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
}
|
|
|
|