|
@@ -0,0 +1,99 @@
|
|
|
+package com.szwl.controller;
|
|
|
+
|
|
|
+
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
+import com.szwl.model.bo.R;
|
|
|
+import com.szwl.model.bo.ResponseModel;
|
|
|
+import com.szwl.model.entity.ReturnCoinRecord;
|
|
|
+import com.szwl.model.entity.TEquipment;
|
|
|
+import com.szwl.model.utils.PushUtils;
|
|
|
+import com.szwl.service.ReturnCoinRecordService;
|
|
|
+import com.szwl.service.TEquipmentService;
|
|
|
+import com.szwl.util.IDGenerator;
|
|
|
+import io.swagger.annotations.ApiOperation;
|
|
|
+import org.apache.commons.lang.StringUtils;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.web.bind.annotation.*;
|
|
|
+
|
|
|
+import java.time.LocalDate;
|
|
|
+import java.time.LocalDateTime;
|
|
|
+import java.util.Date;
|
|
|
+import java.util.List;
|
|
|
+
|
|
|
+/**
|
|
|
+ * <p>
|
|
|
+ * 远程退币申请表 前端控制器
|
|
|
+ * </p>
|
|
|
+ *
|
|
|
+ * @author wuhs
|
|
|
+ * @since 2024-09-04
|
|
|
+ */
|
|
|
+@RestController
|
|
|
+@RequestMapping("/returnCoinRecord")
|
|
|
+public class ReturnCoinRecordController {
|
|
|
+ @Autowired
|
|
|
+ ReturnCoinRecordService returnCoinRecordService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ TEquipmentService tEquipmentService;
|
|
|
+
|
|
|
+ @ApiOperation("获取当天远程退币申请列表")
|
|
|
+ @GetMapping("/list")
|
|
|
+ public ResponseModel<?> list(Long equipmentId){
|
|
|
+ // 获取当天的 0 点时间
|
|
|
+ LocalDateTime startTime = LocalDate.now().atStartOfDay();
|
|
|
+
|
|
|
+ // 获取当天的 24 点时间(次日的 0 点)
|
|
|
+ LocalDateTime endTime = LocalDate.now().plusDays(1).atStartOfDay();
|
|
|
+ LambdaQueryWrapper<ReturnCoinRecord> query = Wrappers.lambdaQuery();
|
|
|
+ query.eq(ReturnCoinRecord::getEquipmentId, equipmentId);
|
|
|
+ // 获取今天的列表,0点到24点
|
|
|
+ query.gt(ReturnCoinRecord::getCreateDate, startTime);
|
|
|
+ query.le(ReturnCoinRecord::getCreateDate, endTime);
|
|
|
+ List<ReturnCoinRecord> list = returnCoinRecordService.list(query);
|
|
|
+ return R.ok(list);
|
|
|
+ }
|
|
|
+
|
|
|
+ @ApiOperation("远程退币申请")
|
|
|
+ @PostMapping("/apply")
|
|
|
+ public ResponseModel<?> apply(@RequestBody ReturnCoinRecord returnCoinRecord){
|
|
|
+ // 设备ID
|
|
|
+ Long equipmentId = returnCoinRecord.getEquipmentId();
|
|
|
+ // 用户ID
|
|
|
+ Long adminId = returnCoinRecord.getAdminId();
|
|
|
+ // 退币数量
|
|
|
+ Integer amount = returnCoinRecord.getAmount();
|
|
|
+ if (equipmentId == null || adminId == null || amount == null) {
|
|
|
+ return R.fail("参数错误");
|
|
|
+ }
|
|
|
+ if (amount <= 0) {
|
|
|
+ return R.fail("参数错误");
|
|
|
+ }
|
|
|
+ TEquipment equipment = tEquipmentService.getById(equipmentId);
|
|
|
+ if (equipment == null || equipment.getId() == null) {
|
|
|
+ return R.fail("找不到设备");
|
|
|
+ }
|
|
|
+ String clientId = equipment.getClientId();
|
|
|
+ String name = equipment.getName();
|
|
|
+ ReturnCoinRecord record = new ReturnCoinRecord();
|
|
|
+ long commonId = IDGenerator.commonID();
|
|
|
+ record.setId(commonId);
|
|
|
+ record.setCreateDate(new Date());
|
|
|
+ record.setModifyDate(new Date());
|
|
|
+ record.setAdminId(adminId);
|
|
|
+ record.setEquipmentId(equipmentId);
|
|
|
+ record.setAmount(amount);
|
|
|
+ record.setClientId(clientId);
|
|
|
+ if (StringUtils.isEmpty(name)) {
|
|
|
+ record.setName(clientId.substring(clientId.length() - 6));
|
|
|
+ } else {
|
|
|
+ record.setName(name);
|
|
|
+ }
|
|
|
+ record.setStatus(0);
|
|
|
+ returnCoinRecordService.save(record);
|
|
|
+ tEquipmentService.sentMessage(clientId, PushUtils.buildJson("returnCoin", commonId + ":" + amount).toString());
|
|
|
+ return R.ok();
|
|
|
+ }
|
|
|
+}
|
|
|
+
|