feat: 在QyLoginDTO中添加name字段并更新开柜逻辑
在QyLoginDTO中添加name字段以存储用户名称,并修改开柜逻辑以支持记录操作日志。具体更改包括: 1. 在QyLoginDTO中添加name字段 2. 将CabinetCellOperationEntity中的isInternal字段类型从Boolean改为Integer 3. 在PaymentController中获取用户名称并传递给QyLoginDTO 4. 在OrderController和OrderApplicationService中更新开柜逻辑,支持记录操作日志
This commit is contained in:
parent
523e545ace
commit
f8379c2b74
|
@ -2,6 +2,7 @@ package com.agileboot.api.controller;
|
||||||
|
|
||||||
import com.agileboot.common.constant.PayApiConstants;
|
import com.agileboot.common.constant.PayApiConstants;
|
||||||
import com.agileboot.common.core.base.BaseController;
|
import com.agileboot.common.core.base.BaseController;
|
||||||
|
import com.agileboot.domain.cabinet.operation.command.AddCabinetCellOperationCommand;
|
||||||
import com.agileboot.domain.shop.order.dto.CreateOrderResult;
|
import com.agileboot.domain.shop.order.dto.CreateOrderResult;
|
||||||
import com.agileboot.domain.shop.order.dto.GetOrdersByOpenIdDTO;
|
import com.agileboot.domain.shop.order.dto.GetOrdersByOpenIdDTO;
|
||||||
import com.agileboot.domain.shop.order.model.OrderGoodsModelFactory;
|
import com.agileboot.domain.shop.order.model.OrderGoodsModelFactory;
|
||||||
|
@ -50,8 +51,9 @@ public class OrderController extends BaseController {
|
||||||
* @return 空响应
|
* @return 空响应
|
||||||
*/
|
*/
|
||||||
@PostMapping("/openCabinet/{orderId}/{orderGoodsId}")
|
@PostMapping("/openCabinet/{orderId}/{orderGoodsId}")
|
||||||
public ResponseDTO<?> openCabinet(@PathVariable Long orderId, @PathVariable Long orderGoodsId) {
|
public ResponseDTO<?> openCabinet(@PathVariable Long orderId, @PathVariable Long orderGoodsId,
|
||||||
orderApplicationService.openOrderGoodsCabinet(orderId, orderGoodsId);
|
@RequestBody AddCabinetCellOperationCommand operationCommand) {
|
||||||
|
orderApplicationService.openOrderGoodsCabinet(orderId, orderGoodsId, operationCommand);
|
||||||
return ResponseDTO.ok();
|
return ResponseDTO.ok();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -179,7 +179,9 @@ public class PaymentController {
|
||||||
|
|
||||||
OpenidResponse openidResponse = QywxApiUtil.convertToOpenid(qyAccessToken.getAccessToken(), userid);
|
OpenidResponse openidResponse = QywxApiUtil.convertToOpenid(qyAccessToken.getAccessToken(), userid);
|
||||||
|
|
||||||
return ResponseDTO.ok(new QyLoginDTO(userid, openidResponse.getOpenid(), isCabinetAdmin));
|
QyUserEntity qyUserEntity = qyUserApplicationService.getUserByUserId(userid, corpid);
|
||||||
|
|
||||||
|
return ResponseDTO.ok(new QyLoginDTO(userid, openidResponse.getOpenid(), isCabinetAdmin, qyUserEntity.getName()));
|
||||||
} catch (RestClientException e) {
|
} catch (RestClientException e) {
|
||||||
log.error("qyLogin失败", e);
|
log.error("qyLogin失败", e);
|
||||||
return ResponseDTO.fail(new ApiException(ErrorCode.Client.COMMON_REQUEST_PARAMETERS_INVALID, "微信服务调用失败"));
|
return ResponseDTO.fail(new ApiException(ErrorCode.Client.COMMON_REQUEST_PARAMETERS_INVALID, "微信服务调用失败"));
|
||||||
|
|
|
@ -49,7 +49,7 @@ public class CabinetCellOperationEntity extends BaseEntity<CabinetCellOperationE
|
||||||
|
|
||||||
@ApiModelProperty("是否内部用户(0否 1是)")
|
@ApiModelProperty("是否内部用户(0否 1是)")
|
||||||
@TableField("is_internal")
|
@TableField("is_internal")
|
||||||
private Boolean isInternal;
|
private Integer isInternal;
|
||||||
|
|
||||||
@ApiModelProperty("成员名称")
|
@ApiModelProperty("成员名称")
|
||||||
@TableField("`name`")
|
@TableField("`name`")
|
||||||
|
|
|
@ -10,4 +10,5 @@ public class QyLoginDTO {
|
||||||
private String userid;
|
private String userid;
|
||||||
private String openid;
|
private String openid;
|
||||||
private Integer isCabinetAdmin;
|
private Integer isCabinetAdmin;
|
||||||
|
private String name;
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,6 +7,9 @@ import com.agileboot.common.exception.ApiException;
|
||||||
import com.agileboot.common.exception.error.ErrorCode;
|
import com.agileboot.common.exception.error.ErrorCode;
|
||||||
import com.agileboot.domain.cabinet.cell.db.CabinetCellEntity;
|
import com.agileboot.domain.cabinet.cell.db.CabinetCellEntity;
|
||||||
import com.agileboot.domain.cabinet.cell.db.CabinetCellService;
|
import com.agileboot.domain.cabinet.cell.db.CabinetCellService;
|
||||||
|
import com.agileboot.domain.cabinet.operation.command.AddCabinetCellOperationCommand;
|
||||||
|
import com.agileboot.domain.cabinet.operation.model.CabinetCellOperationModel;
|
||||||
|
import com.agileboot.domain.cabinet.operation.model.CabinetCellOperationModelFactory;
|
||||||
import com.agileboot.domain.cabinet.smartCabinet.db.SmartCabinetEntity;
|
import com.agileboot.domain.cabinet.smartCabinet.db.SmartCabinetEntity;
|
||||||
import com.agileboot.domain.cabinet.smartCabinet.db.SmartCabinetService;
|
import com.agileboot.domain.cabinet.smartCabinet.db.SmartCabinetService;
|
||||||
import com.agileboot.domain.common.command.BulkOperationCommand;
|
import com.agileboot.domain.common.command.BulkOperationCommand;
|
||||||
|
@ -64,13 +67,14 @@ public class OrderApplicationService {
|
||||||
private final MqttService mqttService;
|
private final MqttService mqttService;
|
||||||
private final QyUserService userService;
|
private final QyUserService userService;
|
||||||
private final QyUserModelFactory qyUserModelFactory;
|
private final QyUserModelFactory qyUserModelFactory;
|
||||||
|
private final CabinetCellOperationModelFactory cabinetCellOperationModelFactory;
|
||||||
|
|
||||||
public PageDTO<ShopOrderEntity> getOrderList(SearchShopOrderQuery<ShopOrderEntity> query) {
|
public PageDTO<ShopOrderEntity> getOrderList(SearchShopOrderQuery<ShopOrderEntity> query) {
|
||||||
Page<ShopOrderEntity> page = orderService.page(query.toPage(), query.toQueryWrapper());
|
Page<ShopOrderEntity> page = orderService.page(query.toPage(), query.toQueryWrapper());
|
||||||
return new PageDTO<>(page.getRecords(), page.getTotal());
|
return new PageDTO<>(page.getRecords(), page.getTotal());
|
||||||
}
|
}
|
||||||
|
|
||||||
public void openOrderGoodsCabinet(Long orderId, Long orderGoodsId) {
|
public void openOrderGoodsCabinet(Long orderId, Long orderGoodsId, AddCabinetCellOperationCommand operationCommand) {
|
||||||
OrderModel orderModel = orderModelFactory.loadById(orderId);
|
OrderModel orderModel = orderModelFactory.loadById(orderId);
|
||||||
// 验证订单状态
|
// 验证订单状态
|
||||||
if (orderModel.getStatus() != 2) {
|
if (orderModel.getStatus() != 2) {
|
||||||
|
@ -96,6 +100,12 @@ public class OrderApplicationService {
|
||||||
throw new ApiException(ErrorCode.Client.COMMON_FORBIDDEN_TO_CALL, "柜子不存在");
|
throw new ApiException(ErrorCode.Client.COMMON_FORBIDDEN_TO_CALL, "柜子不存在");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
operationCommand.setCellId(goodsEntity.getCellId());
|
||||||
|
operationCommand.setGoodsId(goodsEntity.getGoodsId());
|
||||||
|
operationCommand.setGoodsName(goodsEntity.getGoodsName());
|
||||||
|
operationCommand.setStatus(1);
|
||||||
|
CabinetCellOperationModel cellOperationModel = cabinetCellOperationModelFactory.create();
|
||||||
|
|
||||||
// 构造MQTT开柜指令:
|
// 构造MQTT开柜指令:
|
||||||
// 指令格式:8A + 锁控编号(2位HEX) + 引脚号(2位HEX) + 操作码11
|
// 指令格式:8A + 锁控编号(2位HEX) + 引脚号(2位HEX) + 操作码11
|
||||||
String mqttDate = "8A";
|
String mqttDate = "8A";
|
||||||
|
@ -106,7 +116,12 @@ public class OrderApplicationService {
|
||||||
mqttService.publish(mqttDate);
|
mqttService.publish(mqttDate);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
log.error("mqtt publish error", e);
|
log.error("mqtt publish error", e);
|
||||||
|
operationCommand.setStatus(2);
|
||||||
throw new ApiException(ErrorCode.Internal.INTERNAL_ERROR, "发送指令失败");
|
throw new ApiException(ErrorCode.Internal.INTERNAL_ERROR, "发送指令失败");
|
||||||
|
} finally {
|
||||||
|
// 记录操作日志
|
||||||
|
cellOperationModel.loadAddCommand(operationCommand);
|
||||||
|
cellOperationModel.insert();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue