部件入库、入库记录,加密关闭

This commit is contained in:
attiya 2025-10-15 09:15:14 +08:00
parent fed8f1ed54
commit 4bbffd7ca7
13 changed files with 453 additions and 4 deletions

View File

@ -152,9 +152,7 @@ public class CustomCipherTextFilter implements GlobalFilter, Ordered {
return originalResponseBody; return originalResponseBody;
} }
ObjectMapper objectMapper = new ObjectMapper(); ObjectMapper objectMapper = new ObjectMapper();
ResponseDto responseDto = null; ResponseDto responseDto = objectMapper.readValue(originalResponseBody, ResponseDto.class);
responseDto = objectMapper.readValue(originalResponseBody, ResponseDto.class);
// 只对data字段进行加密处理 // 只对data字段进行加密处理
Object data = responseDto.getData(); Object data = responseDto.getData();

View File

@ -87,7 +87,7 @@ cdzy:
gateway: gateway:
secure: secure:
request-switch: request-switch:
enable: true enable: false
response-switch: response-switch:
enable: false enable: false

View File

@ -0,0 +1,49 @@
package com.cdzy.operations.controller;
import com.cdzy.common.model.response.JsonResult;
import com.cdzy.operations.model.vo.EbikeInventoryVo;
import com.cdzy.operations.service.EbikeInventoryService;
import jakarta.annotation.Resource;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* 库存表 控制层
*
* @author attiya
* @since 2025-10-13
*/
@RestController
@RequestMapping("/ebikeInventory")
public class EbikeInventoryController {
@Resource
private EbikeInventoryService ebikeInventoryService;
/**
* 添加库存
*
* @param ebikeInventory 库存表
* @return {@code true} 添加成功{@code false} 添加失败
*/
@PostMapping("addInventory")
public JsonResult<?> addInventory(@RequestBody EbikeInventoryVo ebikeInventory) {
ebikeInventoryService.addInventory(ebikeInventory);
return JsonResult.success();
}
/**
* 减少库存
*
* @param ebikeInventory 库存表
* @return {@code true} 添加成功{@code false} 添加失败
*/
@PostMapping("reduceInventory")
public JsonResult<?> reduceInventory(@RequestBody EbikeInventoryVo ebikeInventory) {
ebikeInventoryService.reduceInventory(ebikeInventory);
return JsonResult.success();
}
}

View File

@ -0,0 +1,40 @@
package com.cdzy.operations.controller;
import com.cdzy.common.model.request.PageParam;
import com.cdzy.common.model.response.JsonResult;
import com.cdzy.operations.model.entity.EbikeInventoryRecord;
import com.cdzy.operations.service.EbikeInventoryRecordService;
import com.mybatisflex.core.paginate.Page;
import jakarta.annotation.Resource;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* 库存记录表 控制层
*
* @author attiya
* @since 2025-10-13
*/
@RestController
@RequestMapping("/ebikeInventoryRecord")
public class EbikeInventoryRecordController {
@Resource
private EbikeInventoryRecordService ebikeInventoryRecordService;
/**
* 分页查询库存记录表
*
* @param pageParam 分页对象
* @param inventoryType 分页对象
* @return 分页对象
*/
@GetMapping("page")
public JsonResult<?> page(PageParam pageParam, Integer inventoryType) {
Page<EbikeInventoryRecord> page = ebikeInventoryRecordService.page(pageParam, inventoryType);
return JsonResult.success(page);
}
}

View File

@ -0,0 +1,14 @@
package com.cdzy.operations.mapper;
import com.mybatisflex.core.BaseMapper;
import com.cdzy.operations.model.entity.EbikeInventory;
/**
* 库存表 映射层
*
* @author attiya
* @since 2025-10-13
*/
public interface EbikeInventoryMapper extends BaseMapper<EbikeInventory> {
}

View File

@ -0,0 +1,14 @@
package com.cdzy.operations.mapper;
import com.mybatisflex.core.BaseMapper;
import com.cdzy.operations.model.entity.EbikeInventoryRecord;
/**
* 库存记录表 映射层
*
* @author attiya
* @since 2025-10-13
*/
public interface EbikeInventoryRecordMapper extends BaseMapper<EbikeInventoryRecord> {
}

View File

@ -0,0 +1,51 @@
package com.cdzy.operations.model.entity;
import com.mybatisflex.annotation.Id;
import com.mybatisflex.annotation.Table;
import java.io.Serializable;
import java.io.Serial;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* 库存表 实体类
*
* @author attiya
* @since 2025-10-13
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Table("ebike_inventory")
public class EbikeInventory implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* 库存ID
*/
@Id
private Long inventoryId;
/**
* 运营商ID
*/
private Long operatorId;
/**
* 库存类型
*/
private Integer inventoryType;
/**
* 库存数量
*/
private Long inventoryNum;
}

View File

@ -0,0 +1,64 @@
package com.cdzy.operations.model.entity;
import com.mybatisflex.annotation.Column;
import com.mybatisflex.annotation.Id;
import com.mybatisflex.annotation.Table;
import java.io.Serializable;
import java.sql.Timestamp;
import java.io.Serial;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* 库存记录表 实体类
*
* @author attiya
* @since 2025-10-13
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Table("ebike_inventory_record")
public class EbikeInventoryRecord implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* 库存记录ID
*/
@Id
private Long inventoryRecordId;
/**
* 运营商ID
*/
private Long operatorId;
/**
* 库存类型
*/
private Integer inventoryType;
/**
* 库存记录数减少/增加的数量
*/
private Long inventoryRecordNum;
/**
* 创建人
*/
private Long createdBy;
/**
* 创建时间
*/
@Column(onInsertValue = "now()")
private Timestamp createdTime;
}

View File

@ -0,0 +1,44 @@
package com.cdzy.operations.model.vo;
import jakarta.validation.constraints.NotNull;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serial;
import java.io.Serializable;
/**
* 库存表 实体类
*
* @author attiya
* @since 2025-10-13
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class EbikeInventoryVo implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* 库存类型
*/
@NotNull(message = "库存部件类型不能为空")
private Integer inventoryType;
/**
* 添加库存数量
*/
@NotNull(message = "库存数量不能为空")
private Long inventoryNum;
/**
* 运营商ID
*/
private Long operatorId;
}

View File

@ -0,0 +1,23 @@
package com.cdzy.operations.service;
import com.cdzy.common.model.request.PageParam;
import com.mybatisflex.core.paginate.Page;
import com.mybatisflex.core.service.IService;
import com.cdzy.operations.model.entity.EbikeInventoryRecord;
/**
* 库存记录表 服务层
*
* @author attiya
* @since 2025-10-13
*/
public interface EbikeInventoryRecordService extends IService<EbikeInventoryRecord> {
/**
* 分页查询入库记录
* @param pageParam 分页参数
* @param inventoryType 类型
* @return 结果
*/
Page<EbikeInventoryRecord> page(PageParam pageParam, Integer inventoryType);
}

View File

@ -0,0 +1,26 @@
package com.cdzy.operations.service;
import com.cdzy.operations.model.vo.EbikeInventoryVo;
import com.mybatisflex.core.service.IService;
import com.cdzy.operations.model.entity.EbikeInventory;
/**
* 库存表 服务层
*
* @author attiya
* @since 2025-10-13
*/
public interface EbikeInventoryService extends IService<EbikeInventory> {
/**
* 添加库存
* @param ebikeInventory 库存信息
*/
void addInventory(EbikeInventoryVo ebikeInventory);
/**
* 减少库存
* @param ebikeInventory 库存信息
*/
void reduceInventory(EbikeInventoryVo ebikeInventory);
}

View File

@ -0,0 +1,32 @@
package com.cdzy.operations.service.impl;
import com.cdzy.common.model.request.PageParam;
import com.cdzy.operations.mapper.EbikeInventoryRecordMapper;
import com.cdzy.operations.model.entity.EbikeInventoryRecord;
import com.cdzy.operations.service.EbikeInventoryRecordService;
import com.mybatisflex.core.paginate.Page;
import com.mybatisflex.core.query.QueryWrapper;
import com.mybatisflex.spring.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
import java.util.Objects;
import static com.cdzy.operations.model.entity.table.EbikeInventoryRecordTableDef.EBIKE_INVENTORY_RECORD;
/**
* 库存记录表 服务层实现
*
* @author attiya
* @since 2025-10-13
*/
@Service
public class EbikeInventoryRecordServiceImpl extends ServiceImpl<EbikeInventoryRecordMapper, EbikeInventoryRecord> implements EbikeInventoryRecordService{
@Override
public Page<EbikeInventoryRecord> page(PageParam pageParam, Integer inventoryType) {
QueryWrapper queryWrapper = QueryWrapper
.create()
.where(EBIKE_INVENTORY_RECORD.INVENTORY_TYPE.eq(inventoryType, Objects.nonNull(inventoryType)));
return this.mapper.paginate(pageParam.getPage(), queryWrapper);
}
}

View File

@ -0,0 +1,94 @@
package com.cdzy.operations.service.impl;
import cn.dev33.satoken.stp.StpUtil;
import com.cdzy.common.ex.EbikeException;
import com.cdzy.operations.mapper.EbikeInventoryMapper;
import com.cdzy.operations.mapper.EbikeInventoryRecordMapper;
import com.cdzy.operations.model.entity.EbikeInventory;
import com.cdzy.operations.model.entity.EbikeInventoryRecord;
import com.cdzy.operations.model.vo.EbikeInventoryVo;
import com.cdzy.operations.service.EbikeInventoryService;
import com.mybatisflex.core.query.QueryWrapper;
import com.mybatisflex.spring.service.impl.ServiceImpl;
import jakarta.annotation.Resource;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import static com.cdzy.operations.model.entity.table.EbikeInventoryTableDef.EBIKE_INVENTORY;
/**
* 库存表 服务层实现
*
* @author attiya
* @since 2025-10-13
*/
@Service
public class EbikeInventoryServiceImpl extends ServiceImpl<EbikeInventoryMapper, EbikeInventory> implements EbikeInventoryService {
@Resource
EbikeInventoryRecordMapper recordMapper;
@Override
@Transactional
public void addInventory(EbikeInventoryVo ebikeInventory) {
if (ebikeInventory.getInventoryNum() <= 0){
throw new EbikeException("添加库存时填入数量不能小于/等于0");
}
QueryWrapper queryWrapper = QueryWrapper.create()
.where(EBIKE_INVENTORY.INVENTORY_TYPE.eq(ebikeInventory.getInventoryType()));
EbikeInventory inventory = this.mapper.selectOneByQuery(queryWrapper);
if (inventory != null) {
long num = inventory.getInventoryNum() + ebikeInventory.getInventoryNum();
inventory.setInventoryNum(num);
this.mapper.update(inventory);
}else {
inventory = new EbikeInventory();
inventory.setOperatorId(ebikeInventory.getOperatorId());
inventory.setInventoryType(ebikeInventory.getInventoryType());
inventory.setInventoryNum(ebikeInventory.getInventoryNum());
this.mapper.insert(inventory);
}
EbikeInventoryRecord inventoryRecord = EbikeInventoryRecord.builder()
.operatorId(ebikeInventory.getOperatorId())
.inventoryType(ebikeInventory.getInventoryType())
.inventoryRecordNum(ebikeInventory.getInventoryNum())
.createdBy(StpUtil.getLoginIdAsLong())
.build();
recordMapper.insert(inventoryRecord);
//该类型值存入字典
if (ebikeInventory.getInventoryType() == 1){
//TODO二维码生产
}
}
@Override
@Transactional
public void reduceInventory(EbikeInventoryVo ebikeInventory) {
if (ebikeInventory.getInventoryNum() <= 0){
throw new EbikeException("添加库存时填入数量不能大于/等于0");
}
QueryWrapper queryWrapper = QueryWrapper.create()
.where(EBIKE_INVENTORY.INVENTORY_TYPE.eq(ebikeInventory.getInventoryType()));
EbikeInventory inventory = this.mapper.selectOneByQuery(queryWrapper);
if (inventory != null) {
long num = inventory.getInventoryNum() + ebikeInventory.getInventoryNum();
if (num < 0){
throw new EbikeException("当前库存总数不足");
}
inventory.setInventoryNum(num);
this.mapper.update(inventory);
}else {
if (ebikeInventory.getInventoryNum() < 0){
throw new EbikeException("暂无库存");
}
}
EbikeInventoryRecord inventoryRecord = EbikeInventoryRecord.builder()
.operatorId(ebikeInventory.getOperatorId())
.inventoryType(ebikeInventory.getInventoryType())
.inventoryRecordNum(ebikeInventory.getInventoryNum())
.createdBy(StpUtil.getLoginIdAsLong())
.build();
recordMapper.insert(inventoryRecord);
}
}