|
@@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
import com.gexin.fastjson.JSON;
|
|
|
+import com.szwl.constant.ResponseCodesEnum;
|
|
|
import com.szwl.feign.SzwlFeign;
|
|
|
import com.szwl.feign.bean.TAdminParam;
|
|
|
import com.szwl.model.bean.CoinOrderVO;
|
|
@@ -538,6 +539,140 @@ public class TCoinOrderController {
|
|
|
return R.ok(snList);
|
|
|
}
|
|
|
|
|
|
+ @ApiOperation(value = "MQTT上传线下订单")
|
|
|
+ @PostMapping("/uploadCoinOrder")
|
|
|
+ @ResponseBody
|
|
|
+ public ResponseModel<String> uploadCoinOrder(@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.isEmpty()) {
|
|
|
+ try {
|
|
|
+ esTCoinOrderService.insertData(coinOrders.get(0));
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ return R.ok("success");
|
|
|
+ }
|
|
|
+ if (StringUtils.isEmpty(clientId)) {
|
|
|
+ return R.fail("设备编号不能为空");
|
|
|
+ }
|
|
|
+ TEquipment equipment = R.getDataIfSuccess(szwlFeign.findEquipmentByClientId(clientId));
|
|
|
+ String machineType = equipment.getMachineType(); // 设备类型
|
|
|
+
|
|
|
+ Long adminId = equipment.getAdminId();
|
|
|
+ if (adminId == null) {
|
|
|
+ return R.fail("找不到设备商家");
|
|
|
+ }
|
|
|
+
|
|
|
+ String adminIdStr = String.valueOf(adminId);
|
|
|
+ // 根据 adminId 获取admin信息中的公司类型
|
|
|
+ TAdmin admin = R.getDataIfSuccess(szwlFeign.getAdmin(adminIdStr));
|
|
|
+ String companyType = admin.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);
|
|
|
+ coinOrder.setEquipmentId(equipment.getId());
|
|
|
+
|
|
|
+ // 保存订单明细
|
|
|
+ TOrderDetails tOrderDetails = new TOrderDetails();
|
|
|
+ tOrderDetails.setOrderSn(sn);
|
|
|
+ tOrderDetails.setEquipmentId(equipment.getId());
|
|
|
+ tOrderDetails.setRefundStatus("1");
|
|
|
+ tOrderDetails.setAdminId(adminId);
|
|
|
+
|
|
|
+ // 设备类型
|
|
|
+ if (StringUtils.isEmpty(machineType) || machineType.equals("0")) {
|
|
|
+ coinOrder.setMachineType("0");
|
|
|
+ tOrderDetails.setMachineType("0");
|
|
|
+ } else {
|
|
|
+ coinOrder.setMachineType(machineType);
|
|
|
+ tOrderDetails.setMachineType(machineType);
|
|
|
+ }
|
|
|
+ // 公司平台
|
|
|
+ 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 {
|
|
|
+ // 推送微信订单
|
|
|
+ // 判断是否开启订单推送功能
|
|
|
+ if (admin != null && StringUtils.isNotEmpty(admin.getOrderNotice()) && admin.getOrderNotice().equals("1")) {
|
|
|
+ String openId = R.getDataIfSuccess(szwlFeign.getOpenId(adminId));
|
|
|
+ // 获取openId
|
|
|
+ if (StringUtils.isNotEmpty(openId)) {
|
|
|
+ coinOrderService.newSendWechatMessage(openId, equipment, coinOrder, admin.getCompanyType());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ esTCoinOrderService.insertData(coinOrder);
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ return R.ok("success");
|
|
|
+ }
|
|
|
|
|
|
}
|
|
|
|