Commit dc078e49 by 赵剑炜

Merge branch 'develop' of http://gitlab.sothing.top/843502640/jyzb_platformV2 into develop-zhaojw

parents 39f51752 41153705
......@@ -41,7 +41,7 @@ public class CabinetReq extends BaseRequest {
* 组织机构号
*/
@ApiModelProperty(value = "组织机构号")
private String orgId;
private Long orgId;
/**
* 位置信息
......
......@@ -5,6 +5,7 @@ import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.Date;
@Data
......@@ -16,9 +17,10 @@ public class PolicemanReq extends BaseRequest {
private String name;
@NotBlank(message = "箱门id不能为空", groups = {edit.class, delete.class, detail.class})
@NotBlank(message = "箱门id不能为空", groups = {edit.class, delete.class})
private String cabinetBoxId;
@NotNull(message = "组织机构id不能为空",groups = {})
private Long orgId;
private Long departmentId;
......
package com.junmp.jyzb.api.bean.query;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.junmp.v2.common.bean.request.BaseRequest;
import io.swagger.annotations.ApiModel;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
@Data
@EqualsAndHashCode(callSuper = true)
public class WarehouseReq extends BaseRequest {
@NotBlank(message = "仓库主键不能为空", groups = {edit.class, delete.class, detail.class})
@NotBlank(message = "仓库主键不能为空", groups = {updateStatus.class, delete.class, detail.class})
private String id;
private Long departmentId;
......@@ -38,7 +32,7 @@ public class WarehouseReq extends BaseRequest {
private String updateUser;
@JsonProperty(value = "orgId")
@NotNull(message = "组织机构id不能为空", groups = {edit.class})
private Long orgId;
private Boolean isLocked;
......@@ -51,11 +45,11 @@ public class WarehouseReq extends BaseRequest {
private BigDecimal priceTotal;
@NotNull(message = "仓库状态不能为空", groups = {edit.class})
@NotNull(message = "仓库状态不能为空", groups = {updateStatus.class})
private Integer state;
private Long orderId;
@JsonProperty(value = "IncludeLowerLevel")
@NotBlank(message = "IncludeLowerLevel不能为空", groups = {edit.class})
private String IncludeLowerLevel;
}
\ No newline at end of file
......@@ -13,7 +13,7 @@ import javax.validation.constraints.NotNull;
public class UpdateCabinetBoxReq extends BaseRequest {
@NotBlank(message = "箱门id不能为空",groups = {add.class,edit.class})
private String id;
@NotBlank(message = "箱门状态不能为空",groups = {edit.class})
@NotNull(message = "箱门状态不能为空",groups = {edit.class})
private Integer state;
private String errorMsg;
......
......@@ -43,9 +43,9 @@ public class UpdateCabinetReq extends BaseRequest {
/**
* 组织机构号
*/
@NotBlank(message = "组织机构号不能为空", groups = {add.class,edit.class, detail.class})
@NotNull(message = "组织机构号不能为空", groups = {add.class,edit.class, detail.class})
@ApiModelProperty(value = "组织机构号")
private String orgId;
private Long orgId;
/**
* 位置信息
......
......@@ -11,23 +11,23 @@ import java.util.Date;
@EqualsAndHashCode(callSuper = true)
public class UpdatePolicemanReq extends BaseRequest {
@NotNull(message = "警员主键不能为空", groups = {add.class,edit.class, delete.class, detail.class})
@NotNull(message = "警员主键不能为空", groups = {edit.class, delete.class, detail.class})
private String id;
@NotNull(message = "警员名字不能为空", groups = {add.class,edit.class, delete.class, detail.class})
@NotNull(message = "警员名字不能为空", groups = {add.class,edit.class})
private String name;
private String cabinetBoxId;
@NotNull(message = "组织机构id不能为空", groups = {add.class,edit.class, delete.class, detail.class})
@NotNull(message = "组织机构id不能为空", groups = {add.class,edit.class})
private Long orgId;
private Long departmentId;
@NotNull(message = "警员编号不能为空", groups = {add.class,edit.class, delete.class, detail.class})
@NotNull(message = "警员编号不能为空", groups = {add.class,edit.class})
private String policeCode;
@NotNull(message = "性别不能为空", groups = {add.class,edit.class, delete.class, detail.class})
@NotNull(message = "性别不能为空", groups = {add.class,edit.class})
private String sex;
private String faceInfo;
......@@ -38,7 +38,7 @@ public class UpdatePolicemanReq extends BaseRequest {
private String password;
@NotNull(message = "电话不能为空", groups = {add.class,edit.class, delete.class, detail.class})
@NotNull(message = "电话不能为空", groups = {add.class,edit.class})
private String photo;
private String phone;
......@@ -47,7 +47,7 @@ public class UpdatePolicemanReq extends BaseRequest {
private Date updateTime;
@NotNull(message = "身份证号不能为空", groups = {add.class,edit.class, delete.class, detail.class})
@NotNull(message = "身份证号不能为空", groups = {add.class,edit.class})
private String idCard;
private String updateUser;
......
......@@ -14,32 +14,29 @@ import java.util.List;
@Data
public class UpdateWarehouseReq extends BaseRequest {
@NotBlank(message = "仓库主键不能为空", groups = {edit.class, delete.class, detail.class})
@NotBlank(message = "仓库主键不能为空", groups = {edit.class, detail.class})
private String id;
private Long departmentId;
@NotBlank(message = "仓库名称不能为空", groups = {add.class,edit.class, delete.class, detail.class})
@NotBlank(message = "仓库名称不能为空", groups = {add.class,edit.class, detail.class})
private String name;
@NotBlank(message = "仓库地点不能为空", groups = {add.class,edit.class, delete.class, detail.class})
@NotBlank(message = "仓库地点不能为空", groups = {add.class,edit.class, detail.class})
private String location;
@NotBlank(message = "联系方式不能为空", groups = {add.class,edit.class, delete.class, detail.class})
@NotBlank(message = "联系方式不能为空", groups = {add.class,edit.class, detail.class})
private String phone;
private String video;
@TableField(value = "create_time",fill = FieldFill.INSERT)
private Date createTime;
@TableField(value = "update_time",fill = FieldFill.UPDATE)
private Date updateTime;
private String updateUser;
@JsonProperty(value = "orgId")
@NotNull(message = "组织机构id不能为空", groups = {add.class,edit.class, delete.class, detail.class})
@NotNull(message = "组织机构id不能为空", groups = {add.class,edit.class, detail.class})
private Long orgId;
private Boolean isLocked;
......
......@@ -21,7 +21,6 @@ import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import java.util.List;
import java.util.Map;
@RestController
@Slf4j
......@@ -35,6 +34,13 @@ public class CabinetController {
private CabinetBoxService cabinetBoxService;
@PostMapping("/AddCabinetInfo")
@ApiOperation("添加单警柜信息")
public ApiRes<String> addCabinetInfo(@RequestBody @Validated(ValidationApi.add.class) UpdateCabinetReq req){
String cabinetId = cabinetService.addCabinetInfo(req);
return ApiRes.success(cabinetId);
}
@PostMapping("/ErrorState")
@ApiOperation("单警柜状态变更")
public ApiRes<Boolean> ChangeCabinetState(@RequestBody UpdateCabinetReq req) {
......@@ -45,12 +51,6 @@ public class CabinetController {
return ApiRes.success(result);
}
@PostMapping("/AddCabinetInfo")
@ApiOperation("添加单警柜信息")
public ApiRes<String> addCabinetInfo(@RequestBody @Validated(ValidationApi.add.class) UpdateCabinetReq req){
String cabinetId = cabinetService.addCabinetInfo(req);
return ApiRes.success(cabinetId);
}
@PostMapping("/DeleteCabinetInfo")
@ApiOperation("删除单警柜信息")
......@@ -73,11 +73,12 @@ public class CabinetController {
//通过单警柜id查询单个箱门及其箱门信息
@PostMapping("/ShowOneCabinet")
@ApiOperation("查询单个单警柜及其箱门信息")
public ApiRes<CabinetDto> showOneCabinet(@RequestBody CabinetReq req){
public ApiRes<CabinetDto> showOneCabinet(@RequestBody @Validated(ValidationApi.detail.class) CabinetReq req){
return ApiRes.success(cabinetService.showOneCabinet(req));
}
//根据组织机构id查询出单警柜的详细信息
@PostMapping("/ShowCabinetList")
@ApiOperation("查询单警柜列表")
public ApiRes<List<CabinetDto>> showCabinetList(@RequestBody CabinetReq req){
......@@ -108,8 +109,8 @@ public class CabinetController {
@PostMapping("/SearchOrgId")
@ApiOperation("/根据单警柜id查询组织机构id")
public ApiRes<Long> SearchOrgId(String id){
return ApiRes.success(cabinetService.SearchOrgId(id));
public ApiRes<Long> SearchOrgId(@RequestBody @Validated(ValidationApi.detail.class) CabinetReq req){
return ApiRes.success(cabinetService.SearchOrgId(req));
}
}
\ No newline at end of file
......@@ -3,6 +3,7 @@ package com.junmp.jyzb.controller;
import cn.hutool.core.util.ObjectUtil;
import com.junmp.jyzb.api.bean.dto.PoliceDto;
import com.junmp.jyzb.api.bean.dto.PolicemanDto;
import com.junmp.jyzb.api.bean.query.CabinetReq;
import com.junmp.jyzb.api.bean.query.PolicemanReq;
import com.junmp.jyzb.api.bean.req.UpdatePolicemanReq;
import com.junmp.jyzb.entity.Policeman;
......@@ -37,7 +38,7 @@ public class PoliceController {
@PostMapping("/DeletePolice")
@ApiOperation("删除警员信息")
public ApiRes<Boolean> DeletePolice(@RequestBody UpdatePolicemanReq req) {
public ApiRes<Boolean> DeletePolice(@RequestBody @Validated(ValidationApi.delete.class) UpdatePolicemanReq req) {
boolean b = policemanService.DeletePolice(req);
if (!b){
return ApiRes.failure("删除失败");
......@@ -71,8 +72,8 @@ public class PoliceController {
//根据组织机构id查询,只查询本级,不包含下级
@PostMapping("/ShowPoliceList")
@ApiOperation("查询某个组织机构下的所有警员信息")
public ApiRes<PoliceDto> GetAllPolicemanList(Long orgId){
PoliceDto policeDto = policemanService.GetAllPolicemanList(orgId);
public ApiRes<PoliceDto> GetAllPolicemanList(@RequestBody PolicemanReq req){
PoliceDto policeDto = policemanService.GetAllPolicemanList(req);
return ApiRes.success(policeDto);
}
......@@ -85,7 +86,7 @@ public class PoliceController {
*/
@PostMapping("/GetPoliceDetail")
@ApiOperation("查询单个警员信息")
public ApiRes<PolicemanDto> GetOnePolice(@RequestBody PolicemanReq req) {
public ApiRes<PolicemanDto> GetOnePolice(@RequestBody @Validated(ValidationApi.detail.class) PolicemanReq req) {
return ApiRes.success(policemanService.GetOnePolice(req));
}
......@@ -97,9 +98,9 @@ public class PoliceController {
*/
@PostMapping("/GetPoliceData")
@ApiOperation("查询与单警柜绑定的警员信息") //根据单警柜id查询
public ApiRes<PoliceDto> GetPoliceData(String id){
public ApiRes<PoliceDto> GetPoliceData(@RequestBody CabinetReq req){
//获取该组织机构下所有警员的id
PoliceDto policeDto = policemanService.GetPoliceData(id);
PoliceDto policeDto = policemanService.GetPoliceData(req);
return ApiRes.success(policeDto);
}
......@@ -115,7 +116,7 @@ public class PoliceController {
@PostMapping("/AddFaceInfo")
@ApiOperation("添加警员面部信息")
public ApiRes<Boolean> AddFaceInfo(@RequestBody UpdatePolicemanReq req) {
public ApiRes<Boolean> AddFaceInfo(@RequestBody @Validated(ValidationApi.detail.class) UpdatePolicemanReq req) {
boolean b = policemanService.AddFaceInfo(req);
if (!b){
return ApiRes.failure("添加失败");
......@@ -125,7 +126,7 @@ public class PoliceController {
@PostMapping("/UpdateFaceInfo")
@ApiOperation("修改、删除人脸信息")
public ApiRes<Boolean> UpdateFaceInfo(@RequestBody UpdatePolicemanReq req) {
public ApiRes<Boolean> UpdateFaceInfo(@RequestBody @Validated(ValidationApi.detail.class) UpdatePolicemanReq req) {
boolean b = policemanService.UpdateFaceInfo(req);
if (!b){
return ApiRes.failure("操作失败");
......@@ -135,7 +136,7 @@ public class PoliceController {
@PostMapping("/SearchFaceInfo")
@ApiOperation("查找人脸信息")
public ApiRes<Policeman> SearchFaceInfo(@RequestBody PolicemanReq req) {
public ApiRes<Policeman> SearchFaceInfo(@RequestBody @Validated(ValidationApi.detail.class) PolicemanReq req) {
Policeman policeman = policemanService.SearchFaceInfo(req);
if (ObjectUtil.isEmpty(policeman)){
return ApiRes.failure("未找到警员信息");
......
......@@ -28,7 +28,7 @@ public class PolicemanFingerController implements PolicemanFingerDoc {
@PostMapping("/AddFingerInfo")
@ApiOperation("添加指纹信息")
public ApiRes<Boolean> addFingerInfo(@RequestBody @Validated(ValidationApi.add.class) UpdatePoliceFingerReq req) {
public ApiRes<Integer> addFingerInfo(@RequestBody @Validated(ValidationApi.add.class) UpdatePoliceFingerReq req) {
return ApiRes.success(policeFingerService.addFingerInfo(req)) ;
}
......
......@@ -55,16 +55,22 @@ public class WarehouseController {
@PostMapping("/ChangeWarehouseState")
@ApiOperation("禁用/启用仓库")
public ApiRes<Boolean> changeWarehouseState(@RequestBody @Validated(WarehouseReq.edit.class) WarehouseReq req) {
public ApiRes<Boolean> changeWarehouseState(@RequestBody @Validated(ValidationApi.updateStatus.class) WarehouseReq req) {
return ApiRes.success(warehouseService.changeWarehouseState(req));
}
/**
* 通过组织机构id获取仓库列表
* @param req
* @return
*/
@PostMapping("/ShowWarehouse")
@ApiOperation("查询仓库列表")
public ApiRes<List<WarehouseDto>> getAllWarehouse(@RequestBody WarehouseReq req){
public ApiRes<List<WarehouseDto>> getAllWarehouse(@RequestBody @Validated(ValidationApi.edit.class) WarehouseReq req){
return ApiRes.success(warehouseService.getAllWarehouse(req));
}
//通过仓库id查询列表
@PostMapping("/GetWarehouseDetail")
@ApiOperation("查询单个仓库信息")
public ApiRes<WarehouseDto> getOneWarehouse(@RequestBody @Validated(WarehouseReq.detail.class)WarehouseReq req) {
......@@ -73,7 +79,7 @@ public class WarehouseController {
@PostMapping("/UpdateWarehouse")
@ApiOperation("修改仓库信息")
public ApiRes<Boolean> updateWarehouse(@RequestBody @Validated(WarehouseReq.edit.class) UpdateWarehouseReq req) {
public ApiRes<Boolean> updateWarehouse(@RequestBody @Validated(ValidationApi.edit.class) UpdateWarehouseReq req) {
return ApiRes.success(warehouseService.updateWarehouse(req));
}
......@@ -104,7 +110,7 @@ public class WarehouseController {
@PostMapping("/AddShelf")
@ApiOperation("添加货架")
public ApiRes<Boolean> AddShelf(@RequestBody @Validated(ValidationApi.add.class) UpdateShelfReq req) {
public ApiRes<String> AddShelf(@RequestBody @Validated(ValidationApi.add.class) UpdateShelfReq req) {
return ApiRes.success(shelfService.AddShelf(req));
}
......
......@@ -14,7 +14,7 @@ import java.util.List;
@Api(value = "警员指纹管理",tags = "警员指纹管理接口")
public interface PolicemanFingerDoc {
@ApiOperation(value = "添加指纹信息", tags = "警员指纹管理接口")
ApiRes<Boolean> addFingerInfo(UpdatePoliceFingerReq req);
ApiRes<Integer> addFingerInfo(UpdatePoliceFingerReq req);
@ApiOperation(value = "修改指纹信息", tags = "警员指纹管理接口")
ApiRes<Boolean> updateFingerInfo(UpdatePoliceFingerReq req);
......
......@@ -20,6 +20,7 @@ public class User implements Serializable {
@TableField(value = "real_name")
private String realName;
private String nickName;
private String account;
private String password;
......
......@@ -44,14 +44,11 @@ public class Warehouse implements Serializable {
private String updateUser;
@TableField("org_id_int")
private Long orgIdInt;
private Long orgId;
@TableField("is_locked")
private Boolean isLocked;
@TableField("org_id")
private String orgId;
@TableField("sum")
private Integer sum;
......
......@@ -16,7 +16,7 @@ import lombok.NoArgsConstructor;
@TableName("base_warehouse_area")
public class WarehouseArea implements Serializable {
@TableId(value = "area_id", type = IdType.ASSIGN_UUID)
private String id;
private String areaId;
@TableField("area_name")
private String areaName;
......
......@@ -12,7 +12,7 @@ import java.util.Map;
@Mapper
public interface CabinetMapper extends BaseMapper<Cabinet> {
List<Cabinet> getAllCabinetByOrgList(@Param("allOrgId") List<String> allOrgId);
List<Cabinet> getAllCabinetByOrgList(@Param("allOrgId") List<Long> allOrgId);
......
......@@ -16,4 +16,7 @@ public interface CabinetBoxService extends IService<CabinetBox> {
//添加箱门信息
boolean AddBoxInfo(UpdateCabinetBoxReq req);
//判断箱门信息是否存在
CabinetBox CabinetBoxExist(String id);
}
......@@ -68,5 +68,10 @@ public interface CabinetService extends IService<Cabinet> {
*/
boolean ChangeCabinetState(UpdateCabinetReq req);
Long SearchOrgId(String id);
//根据单警柜id查询出组织机构id
Long SearchOrgId(CabinetReq req);
//判断单警柜是否存在
Cabinet CabinetExist(String id);
}
......@@ -17,7 +17,7 @@ public interface PoliceFingerService extends IService<PoliceFinger> {
* @param req
* @return
*/
boolean addFingerInfo(UpdatePoliceFingerReq req);
Integer addFingerInfo(UpdatePoliceFingerReq req);
/**
* 更新指纹信息
......
......@@ -3,6 +3,7 @@ package com.junmp.jyzb.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.junmp.jyzb.api.bean.dto.PoliceDto;
import com.junmp.jyzb.api.bean.dto.PolicemanDto;
import com.junmp.jyzb.api.bean.query.CabinetReq;
import com.junmp.jyzb.api.bean.query.PolicemanReq;
import com.junmp.jyzb.api.bean.req.UpdatePolicemanReq;
import com.junmp.jyzb.entity.Policeman;
......@@ -34,11 +35,11 @@ public interface PolicemanService extends IService<Policeman> {
//通过组织机构id查询警员列表
PoliceDto GetAllPolicemanList(Long orgId);
PoliceDto GetAllPolicemanList(PolicemanReq req);
//根据单警柜id查询警员列表
PoliceDto GetPoliceData(String id);
PoliceDto GetPoliceData(CabinetReq req);
boolean UpdateFaceInfo(UpdatePolicemanReq req);
......@@ -50,4 +51,6 @@ public interface PolicemanService extends IService<Policeman> {
boolean PoliceBindBox(PolicemanReq req);
//判断警员信息是否存在
Policeman PoliceExist(String policeId);
}
......@@ -16,7 +16,7 @@ public interface PubOrgService extends IService<PubOrg> {
ResponseResult setShortName(Map<String, Object> orgId);
List<String> getLowerOrg(String orgId);
List<Long> getLowerOrg(Long orgId);
ResponseResult setOrgParentIds();
......@@ -25,4 +25,7 @@ public interface PubOrgService extends IService<PubOrg> {
Boolean ChangeState(UpdateOrgReq req);
//根据组织机构id查询出组织机构是否存在
PubOrg PubOrgExist(Long id);
}
......@@ -9,7 +9,7 @@ import com.junmp.jyzb.entity.Shelf;
import java.util.List;
public interface ShelfService extends IService<Shelf> {
boolean AddShelf(UpdateShelfReq req);
String AddShelf(UpdateShelfReq req);
boolean UpdateShelf(UpdateShelfReq req);
......
......@@ -44,4 +44,7 @@ public interface WarehouseService extends IService<Warehouse> {
ResponseResult setWarehouseInventory(Map<String, Object> msg);
//通过仓库id 判断仓库是否存在
Warehouse WarehoustExist(String id);
}
......@@ -26,8 +26,6 @@ import java.util.Map;
@Service
public class CabinetBoxServiceImpl extends ServiceImpl<CabinetBoxMapper, CabinetBox> implements CabinetBoxService {
@Resource
private CabinetBoxMapper cabinetBoxMapper;
@Resource
private CabinetService cabinetService;
......@@ -51,20 +49,22 @@ public class CabinetBoxServiceImpl extends ServiceImpl<CabinetBoxMapper, Cabinet
@Override
@Transactional(rollbackFor = Exception.class)
public boolean AddBoxInfo(UpdateCabinetBoxReq req) {
CabinetBox one = this.getOne(new LambdaQueryWrapper<CabinetBox>()
.eq(CabinetBox::getId, req.getId()));
if (ObjectUtil.isNotNull(one)){
Cabinet cabinet = cabinetService.getOne(new LambdaQueryWrapper<Cabinet>()
.eq(Cabinet::getCabinetNum, req.getCabinetNum()));
if (ObjectUtil.isNull(cabinet)){
throw new ServiceException(CabinetExceptionEnum.CABINET_ISNOT_EXISTS);
}
//判断传递的箱号是否存在
CabinetBox one = getOne(new LambdaQueryWrapper<CabinetBox>()
.eq(CabinetBox::getCabinetId, cabinet.getId())
.eq(CabinetBox::getNum, req.getNum()));
if (ObjectUtil.isNull(one)){
throw new ServiceException(CabinetBoxExceptionEnum.CABINETBOX_IS_EXISTS);
}
CabinetBox cabinetBox = new CabinetBox();
BeanPlusUtil.copyProperties(req,cabinetBox);
//添加单警柜箱门信息默认状态为1
cabinetBox.setState(1);
Cabinet cabinet = cabinetService.getOne(new LambdaQueryWrapper<Cabinet>()
.eq(Cabinet::getCabinetNum, req.getCabinetNum()));
if (ObjectUtil.isNull(cabinet)){
throw new ServiceException(CabinetExceptionEnum.CABINET_ISNOT_EXISTS);
}
cabinetBox.setCabinetId(cabinet.getId());
Integer num = cabinet.getNum();
if (num==null){
......@@ -77,4 +77,15 @@ public class CabinetBoxServiceImpl extends ServiceImpl<CabinetBoxMapper, Cabinet
return save(cabinetBox);
}
//判断箱子信息是否存在
@Override
public CabinetBox CabinetBoxExist(String id) {
CabinetBox cabinetBox = getOne(new LambdaQueryWrapper<CabinetBox>()
.eq(CabinetBox::getId,id));
if (ObjectUtil.isNull(cabinetBox)) {
throw new ServiceException(CabinetBoxExceptionEnum.CABINETBOX_ISNOT_EXISTS);
}
return cabinetBox;
}
}
......@@ -31,7 +31,6 @@ import javax.annotation.Resource;
import java.util.*;
import static com.junmp.jyzb.utils.CheckBlank.checkNotBlank;
@Service
public class CabinetServiceImpl extends ServiceImpl<CabinetMapper, Cabinet> implements CabinetService {
......@@ -49,8 +48,8 @@ public class CabinetServiceImpl extends ServiceImpl<CabinetMapper, Cabinet> impl
private PolicemanService policemanService;
private List<String> getAllOrgId(CabinetReq req, String includeLowerLevel) {
List<String> allOrg = new ArrayList<>();
private List<Long> getAllOrgId(CabinetReq req, String includeLowerLevel) {
List<Long> allOrg = new ArrayList<>();
if (includeLowerLevel.equals("false")) {
allOrg.add(req.getOrgId());
} else if (includeLowerLevel.equals("true")) {
......@@ -60,7 +59,7 @@ public class CabinetServiceImpl extends ServiceImpl<CabinetMapper, Cabinet> impl
return allOrg;
}
private List<Cabinet> getAllCabinetByOrg( List<String> allOrgId) {
private List<Cabinet> getAllCabinetByOrg( List<Long> allOrgId) {
List<Cabinet> allCabinet = new ArrayList<>();
allCabinet = cabinetMapper.getAllCabinetByOrgList(allOrgId);
return allCabinet;
......@@ -97,12 +96,7 @@ public class CabinetServiceImpl extends ServiceImpl<CabinetMapper, Cabinet> impl
public String addCabinetInfo(UpdateCabinetReq req) {
Cabinet cabinet = new Cabinet();
//查询传入的组织机构id是否存在
PubOrg puborg = pubOrgService.getOne(new LambdaQueryWrapper<PubOrg>()
.eq(ObjectUtil.isNotEmpty(req.getOrgId()),PubOrg::getOrgId,req.getOrgId()));
if (ObjectUtil.isEmpty(puborg)) {
//抛出组织机构不存在异常
throw new ServiceException(PubOrgExceptionEnum.PUBORG_NOT_EXIST);
}
pubOrgService.PubOrgExist(req.getOrgId());
//查询是否有重复的单警柜编号
List<Cabinet> list = this.list(new LambdaQueryWrapper<Cabinet>()
.eq(ObjectUtil.isNotEmpty(req.getCabinetNum()),Cabinet::getCabinetNum,req.getCabinetNum()));
......@@ -151,12 +145,7 @@ public class CabinetServiceImpl extends ServiceImpl<CabinetMapper, Cabinet> impl
//遍历单警柜id列表
for (String id:cabinetIdList) {
//通过单警柜id查询出他的箱门数
Cabinet cabinet = this.getOne(new LambdaQueryWrapper<Cabinet>()
.eq(ObjectUtil.isNotEmpty(id), Cabinet::getId,id));
//如果查询不到单警柜抛出异常
if (ObjectUtil.isEmpty(cabinet)) {
throw new ServiceException(CabinetExceptionEnum.CABINET_ISNOT_EXISTS);
}
Cabinet cabinet = CabinetExist(id);
//查询出单警柜之后添加到列表中
cabinetList.add(cabinet);
//通过单警柜id循环遍历出并删除所有箱门信息
......@@ -197,6 +186,8 @@ public class CabinetServiceImpl extends ServiceImpl<CabinetMapper, Cabinet> impl
*/
@Override
public List<CabinetDto> getAllCabinetList(CabinetReq req) {
//判断组织机构是否存在
pubOrgService.PubOrgExist(req.getOrgId());
List<Cabinet> cabinets = new ArrayList<>();
List<CabinetDto> cabinetList=new ArrayList<>();
List<CabinetBoxDto> cabinetBoxList=new ArrayList<>();
......@@ -222,7 +213,7 @@ public class CabinetServiceImpl extends ServiceImpl<CabinetMapper, Cabinet> impl
}
//分两种情况,如果说是本级及下级(全部)所有的单警柜信息,则incluLowerLevel为true,如果是查询本级的单警柜信息则为false
if (req.getIncludeLowerLevel().equals("true") || req.getIncludeLowerLevel().equals("false")) {
List<String> allOrgId = getAllOrgId(req, req.getIncludeLowerLevel());
List<Long> allOrgId = getAllOrgId(req, req.getIncludeLowerLevel());
if (allOrgId.size()==0) {
//抛出组织机构不存在异常
throw new ServiceException(PubOrgExceptionEnum.PUBORG_NOT_EXIST);
......@@ -259,11 +250,7 @@ public class CabinetServiceImpl extends ServiceImpl<CabinetMapper, Cabinet> impl
@Override
public CabinetDto showOneCabinet(CabinetReq req) {
//查询单警柜信息
Cabinet one = getOne(new LambdaQueryWrapper<Cabinet>()
.eq(ObjectUtil.isNotEmpty(req.getId()), Cabinet::getId, req.getId()));
if (ObjectUtil.isNull(one)){
throw new ServiceException(CabinetExceptionEnum.CABINET_ISNOT_EXISTS);
}
Cabinet cabinet = CabinetExist(req.getId());
//查询单警柜的箱门信息
List<CabinetBox> list = cabinetBoxService.list(new LambdaQueryWrapper<CabinetBox>()
.eq(ObjectUtil.isNotEmpty(req.getId()), CabinetBox::getCabinetId, req.getId()));
......@@ -275,7 +262,7 @@ public class CabinetServiceImpl extends ServiceImpl<CabinetMapper, Cabinet> impl
}
//将单警柜的信息和它的箱门信息返回
CabinetDto cabinetDto = new CabinetDto();
BeanPlusUtil.copyProperties(one,cabinetDto);
BeanPlusUtil.copyProperties(cabinet,cabinetDto);
cabinetDto.setCabinetBoxList(boxList);
return cabinetDto;
}
......@@ -289,15 +276,10 @@ public class CabinetServiceImpl extends ServiceImpl<CabinetMapper, Cabinet> impl
@Override
public boolean updateCabinetInfo(UpdateCabinetReq req) {
//查询传入的组织机构id是否存在
PubOrg puborg = pubOrgService.getOne(new LambdaQueryWrapper<PubOrg>()
.eq(ObjectUtil.isNotEmpty(req.getOrgId()),PubOrg::getOrgId,req.getOrgId()));
if (ObjectUtil.isEmpty(puborg)) {
//抛出组织机构不存在异常
throw new ServiceException(PubOrgExceptionEnum.PUBORG_NOT_EXIST);
}
pubOrgService.PubOrgExist(req.getOrgId());
//查询是否有重复的单警柜编号
List<Cabinet> list = this.list(new LambdaQueryWrapper<Cabinet>()
.eq(ObjectUtil.isNotEmpty(req.getCabinetNum()),Cabinet::getCabinetNum,req.getCabinetNum()));
.eq(Cabinet::getCabinetNum,req.getCabinetNum()));
if (list.size()>0) {
//判断是否是本身,如果是则不抛出异常(根据单警柜id进行比较)
Cabinet cabinet = list.get(0);
......@@ -363,11 +345,7 @@ public class CabinetServiceImpl extends ServiceImpl<CabinetMapper, Cabinet> impl
@Transactional(rollbackFor = Exception.class)
public boolean ChangeCabinetState(UpdateCabinetReq req) {
//查询单警柜是否存在
Cabinet cabinet = getOne(new LambdaQueryWrapper<Cabinet>()
.eq(Cabinet::getId, req.getId()));
if (ObjectUtil.isNull(cabinet)){
throw new ServiceException(CabinetExceptionEnum.CABINET_ISNOT_EXISTS);
}
CabinetExist(req.getId());
List<UpdateCabinetBoxReq> cabinetBoxList = req.getCabinetBoxList();
List<CabinetBox> list =new ArrayList<>();
for (UpdateCabinetBoxReq updateCabinet:cabinetBoxList) {
......@@ -378,25 +356,21 @@ public class CabinetServiceImpl extends ServiceImpl<CabinetMapper, Cabinet> impl
return cabinetBoxService.updateBatchById(list);
}
//根据单警柜id查询出组织机构id
@Override
public Long SearchOrgId(String id) {
public Long SearchOrgId(CabinetReq req) {
Cabinet cabinet = CabinetExist(req.getId());
return cabinet.getOrgId();
}
//根据单警柜id判断单警柜是否存在
@Override
public Cabinet CabinetExist(String id) {
Cabinet one = getOne(new LambdaQueryWrapper<Cabinet>().eq(Cabinet::getId, id));
if (ObjectUtil.isNull(one)){
throw new ServiceException(CabinetExceptionEnum.CABINET_ISNOT_EXISTS);
}
return one.getOrgId();
return one;
}
//查询机构id是否存在
private LambdaQueryWrapper<PubOrg> PubOrgWrapper(long orgId) {
LambdaQueryWrapper<PubOrg> wrapper = new LambdaQueryWrapper<>();
//查询全部
if (ObjectUtil.isEmpty(orgId)) {
return wrapper;
}
//查询机构id是否存在
wrapper.eq(ObjectUtil.isNotEmpty(orgId),PubOrg::getOrgId,orgId);
return wrapper;
}
}
\ No newline at end of file
......@@ -35,10 +35,9 @@ public class PoliceFingerServiceImpl extends ServiceImpl<PoliceFingerMapper, Pol
//新增指纹信息
@Override
public boolean addFingerInfo(UpdatePoliceFingerReq req) {
public Integer addFingerInfo(UpdatePoliceFingerReq req) {
//判断警员是否存在
PoliceExist(req.getPoliceId());
policemanService.PoliceExist(req.getPoliceId());
PoliceFinger policeFinger = getOne(new LambdaQueryWrapper<PoliceFinger>()
.eq(ObjectUtil.isNotEmpty(req.getPoliceId()),PoliceFinger::getPoliceId,req.getPoliceId())
.eq(ObjectUtil.isNotEmpty(req.getFingerInfo()),PoliceFinger::getFingerInfo,req.getFingerInfo()));
......@@ -48,7 +47,8 @@ public class PoliceFingerServiceImpl extends ServiceImpl<PoliceFingerMapper, Pol
}
PoliceFinger policeFinger1=new PoliceFinger();
BeanPlusUtil.copyProperties(req, policeFinger1);
return this.save(policeFinger1);
save(policeFinger1);
return policeFinger1.getId();
}
//修改指纹信息
......@@ -62,6 +62,7 @@ public class PoliceFingerServiceImpl extends ServiceImpl<PoliceFingerMapper, Pol
//查询指纹信息
@Override
public List<PoliceFinger> searchFingerInfo(PolicemanFingerReq req) {
policemanService.PoliceExist(req.getPoliceId());
LambdaQueryWrapper<PoliceFinger> wrapper = createWrapper(req);
return this.list(wrapper);
}
......@@ -71,7 +72,7 @@ public class PoliceFingerServiceImpl extends ServiceImpl<PoliceFingerMapper, Pol
@Override
public boolean deleteFinger(UpdatePoliceFingerReq req) {
//判断警员是否存在
PoliceExist(req.getPoliceId());
policemanService.PoliceExist(req.getPoliceId());
PoliceFinger policeFinger = PolicemanFingerExist(req.getId(), req.getPoliceId());
return removeById(policeFinger);
}
......@@ -107,15 +108,6 @@ public class PoliceFingerServiceImpl extends ServiceImpl<PoliceFingerMapper, Pol
return wrapper;
}
//判断警员是否存在
public boolean PoliceExist(String id){
Policeman one = policemanService.getOne(new LambdaQueryWrapper<Policeman>()
.eq(Policeman::getId, id));
if (ObjectUtil.isNull(one)){
throw new ServiceException(PolicemanExceptionEnum.POLICEMAN_NOT_EXIST);
}
return true;
}
//判断指纹信息是否存在
public PoliceFinger PolicemanFingerExist(Integer fingerId,String policeId){
PoliceFinger one = getOne(new LambdaQueryWrapper<PoliceFinger>()
......
......@@ -11,6 +11,7 @@ import com.junmp.jyzb.api.bean.req.UpdateOrgReq;
import com.junmp.jyzb.api.exception.JYZBAppException;
import com.junmp.jyzb.api.exception.enums.EquipmentTypeExceptionEnum;
import com.junmp.jyzb.api.exception.enums.OrgExceptionEnum;
import com.junmp.jyzb.api.exception.enums.PubOrgExceptionEnum;
import com.junmp.jyzb.entity.EquipmentType;
import com.junmp.jyzb.entity.PubOrg;
import com.junmp.jyzb.entity.Supplier;
......@@ -18,6 +19,7 @@ import com.junmp.jyzb.utils.HttpStatus;
import com.junmp.jyzb.utils.RedisUtils;
import com.junmp.jyzb.utils.ResponseResult;
import com.junmp.jyzb.utils.ReturnMsg;
import com.junmp.v2.common.exception.base.ServiceException;
import com.junmp.v2.common.util.BeanPlusUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
......@@ -52,7 +54,7 @@ public class PubOrgServiceImpl extends ServiceImpl<PubOrgMapper, PubOrg> implem
@Override
public List<String> getLowerOrg(String orgId) {
public List<Long> getLowerOrg(Long orgId) {
//构建 Redis 缓存�
String redisKey = "getLowerOrg";
......@@ -66,40 +68,40 @@ public class PubOrgServiceImpl extends ServiceImpl<PubOrgMapper, PubOrg> implem
redisUtils.set(redisKey, menuList);
}
List<String> resultList = new ArrayList<>(); // 存储最终的菜单树结果
Map<String, List<String>> childrenMap = new HashMap<>(); // 存储每个菜单项的子菜单映射
List<Long> resultList = new ArrayList<>(); // 存储最终的菜单树结果
Map<String, List<Long>> childrenMap = new HashMap<>(); // 存储每个菜单项的子菜单映射
resultList.add(orgId); //将自己加入到返回的List中
// 构建子菜单映射表
for (PubOrg menu : menuList) {
String org = menu.getOrgId().toString();
Long org = menu.getOrgId();
if (!childrenMap.containsKey(menu.getOrgParentId().toString())) { // 如果父菜单还不存在于映射表中
childrenMap.put(menu.getOrgParentId().toString(), new ArrayList<>()); // 创建一个新的子菜单列表
}
childrenMap.get(menu.getOrgParentId().toString()).add(org); // 将当前菜单项放入对应的子菜单列表中
childrenMap.get(menu.getOrgParentId()).add(org); // 将当前菜单项放入对应的子菜单列表中
}
Long orgInfo = Long.valueOf(orgId);//获取输入的组织机构id信息
//Long orgInfo = new BigInteger(orgId); // 获取顶级菜单的标识符
// 获取顶级菜单
List<String> topMenus = childrenMap.get(orgId);
List<Long> topMenus = childrenMap.get(orgId);
// 迭代构建菜单树
if (topMenus != null) {
for (String topMenu : topMenus) {
Stack<String> stack = new Stack<>(); // 使用栈结构辅助构建菜单树
for (Long topMenu : topMenus) {
Stack<Long> stack = new Stack<>(); // 使用栈结构辅助构建菜单树
stack.push(topMenu); // 将当前顶级菜单项放入栈中
while (!stack.isEmpty()) {
String currentMenu = stack.pop(); // 取出队首的当前菜单项
Long currentMenu = stack.pop(); // 取出队首的当前菜单项
//Long currentMenuId = currentMenu; // 获取当前菜单项的标识符
if (childrenMap.containsKey(currentMenu)) { // 如果当前菜单项有子菜单
List<String> children = childrenMap.get(currentMenu); // 获取子菜单列表
List<Long> children = childrenMap.get(currentMenu); // 获取子菜单列表
for (int i = children.size() - 1; i >= 0; i--) {
stack.push(children.get(i));
......@@ -244,6 +246,8 @@ public class PubOrgServiceImpl extends ServiceImpl<PubOrgMapper, PubOrg> implem
}
}
public List<String> CheckOrgList(List<String> req){
LambdaQueryWrapper<PubOrg> wp = new LambdaQueryWrapper<>();
wp.in(ObjectUtil.isNotEmpty(req), PubOrg::getOrgId, req);
......@@ -359,6 +363,18 @@ public class PubOrgServiceImpl extends ServiceImpl<PubOrgMapper, PubOrg> implem
return wrapper;
}
//根据组织机构id查询出组织机构是否存在
@Override
public PubOrg PubOrgExist(Long id) {
PubOrg puborg = getOne(new LambdaQueryWrapper<PubOrg>()
.eq(PubOrg::getOrgId,id));
if (ObjectUtil.isEmpty(puborg)) {
//抛出组织机构不存在异常
throw new ServiceException(PubOrgExceptionEnum.PUBORG_NOT_EXIST);
}
return puborg;
}
}
......
......@@ -28,10 +28,13 @@ public class ShelfServiceImpl extends ServiceImpl<ShelfMapper, Shelf> implements
private WarehouseService warehouseService;
@Override
public boolean AddShelf(UpdateShelfReq req) {
public String AddShelf(UpdateShelfReq req) {
//判断仓库是否存在
warehouseService.WarehoustExist(req.getWarehouseId());
Shelf shelf = new Shelf();
BeanPlusUtil.copyProperties(req,shelf);
return this.save(shelf);
save(shelf);
return shelf.getShelfId();
}
@Override
......@@ -51,13 +54,9 @@ public class ShelfServiceImpl extends ServiceImpl<ShelfMapper, Shelf> implements
@Override
public List<ShelfDto> GetShelfList(ShelfReq req) {
//判断仓库id是否存在
Warehouse one = warehouseService.getOne(new LambdaQueryWrapper<Warehouse>()
.eq(Warehouse::getId, req.getWarehouseId()));
if (ObjectUtil.isNull(one)){
throw new ServiceException(WarehouseExceptionEnum.WAREHOUSE_NOT_EXIST);
}
LambdaQueryWrapper<Shelf> wrapper = createWrapper(req);
List<Shelf> list = list(wrapper);
warehouseService.WarehoustExist(req.getWarehouseId());
List<Shelf> list = list(new LambdaQueryWrapper<Shelf>()
.eq(Shelf::getWarehouseId,req.getWarehouseId()));
List<ShelfDto> shelfDtoList=new ArrayList<>();
for (Shelf shelf:list) {
ShelfDto shelfDto = new ShelfDto();
......@@ -80,17 +79,4 @@ public class ShelfServiceImpl extends ServiceImpl<ShelfMapper, Shelf> implements
return shelf;
}
private LambdaQueryWrapper<Shelf> createWrapper(ShelfReq req) {
LambdaQueryWrapper<Shelf> wrapper = new LambdaQueryWrapper<>();
if (ObjectUtil.isEmpty(req)) {
return wrapper;
}
//根据货架id查询
wrapper.eq(ObjectUtil.isNotEmpty(req.getShelfId()), Shelf::getShelfId, req.getShelfId());
//根据货架名称、货架编号模糊查询
wrapper.like(ObjectUtil.isNotEmpty(req.getShelfName()), Shelf::getCode, req.getShelfName());
wrapper.orderByDesc(Shelf::getCreateTime);
return wrapper;
}
}
......@@ -65,7 +65,7 @@ public class WarehouseAreaServiceImpl extends ServiceImpl<WarehouseAreaMapper, W
WarehouseAreaExist(req.getAreaId());
WarehouseArea warehouseArea = new WarehouseArea();
BeanPlusUtil.copyProperties(req,warehouseArea);
return this.removeById(warehouseArea.getId());
return this.removeById(warehouseArea);
}
@Override
......
package com.junmp.jyzb.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
......@@ -18,6 +19,7 @@ import com.junmp.jyzb.utils.*;
import com.junmp.v2.common.exception.base.ServiceException;
import com.junmp.v2.common.util.BeanPlusUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.context.annotation.Bean;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
......@@ -48,16 +50,12 @@ public class WarehouseServiceImpl extends ServiceImpl<WarehouseMapper,Warehouse>
@Override
public WarehouseDto getOneWarehouse(WarehouseReq req) {
Warehouse warehouseMsg=this.getById(req.getId());
if (ObjectUtil.isNull(warehouseMsg)){
throw new ServiceException(WarehouseExceptionEnum.WAREHOUSE_NOT_EXIST);
}
Warehouse warehouse = WarehoustExist(req.getId());
WarehouseDto warehouseDto = new WarehouseDto();
BeanPlusUtil.copyProperties(warehouseMsg,warehouseDto);
BeanPlusUtil.copyProperties(warehouse,warehouseDto);
//获取组织机构名称
PubOrg one = pubOrgService.getOne(new LambdaQueryWrapper<PubOrg>()
.eq(PubOrg::getOrgId, warehouseMsg.getOrgId()));
warehouseDto.setOrgName(one.getOrgName());
PubOrg pubOrg = pubOrgService.PubOrgExist(warehouse.getOrgId());
warehouseDto.setOrgName(pubOrg.getOrgName());
return warehouseDto;
}
......@@ -88,13 +86,9 @@ public class WarehouseServiceImpl extends ServiceImpl<WarehouseMapper,Warehouse>
List<Warehouse> allWarehouse=new ArrayList<>();
List<WarehouseDto> warehouseDtoList=new ArrayList<>();
//判断组织机构是否存在
PubOrg one = pubOrgService.getOne(new LambdaQueryWrapper<PubOrg>()
.eq(PubOrg::getOrgId, msg.getOrgId()));
if (ObjectUtil.isNull(one)){
throw new ServiceException(PubOrgExceptionEnum.PUBORG_NOT_EXIST);
}
PubOrg pubOrg = pubOrgService.PubOrgExist(msg.getOrgId());
//根据组织机构id查询组织机构名称
String orgName = one.getOrgName();
String orgName = pubOrg.getOrgName();
//如果组织机构是浙江省公安厅
if (msg.getOrgId().equals(1369509498032808905L) && msg.getIncludeLowerLevel().equals("true")){
allWarehouse = this.list();
......@@ -108,7 +102,7 @@ public class WarehouseServiceImpl extends ServiceImpl<WarehouseMapper,Warehouse>
}
//获取组织机构Id
List<String> allOrgId =getAllOrgId(msg);
List<Long> allOrgId =getAllOrgId(msg);
allWarehouse = getAllWarehouseByOrg(allOrgId);
......@@ -122,22 +116,22 @@ public class WarehouseServiceImpl extends ServiceImpl<WarehouseMapper,Warehouse>
}
private List<String> getAllOrgId(WarehouseReq msg) {
List<String> allOrg = new ArrayList<>();
private List<Long> getAllOrgId(WarehouseReq msg) {
List<Long> allOrg = new ArrayList<>();
if (msg.getIncludeLowerLevel().equals("false")){
allOrg.add(msg.getOrgId().toString());
allOrg.add(msg.getOrgId());
}else if(msg.getIncludeLowerLevel().equals("true")){
//查询某组织机构的本级及下级
allOrg = pubOrgService.getLowerOrg(msg.getOrgId().toString());
allOrg = pubOrgService.getLowerOrg(msg.getOrgId());
}
return allOrg;
}
private List<Warehouse> getAllWarehouseByOrg(List<String> allOrgId) {
private List<Warehouse> getAllWarehouseByOrg(List<Long> allOrgId) {
List<Warehouse> allWarehouse = new ArrayList<>();
LambdaQueryWrapper<Warehouse> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.in(Warehouse::getOrgIdInt, allOrgId);
queryWrapper.in(Warehouse::getOrgId, allOrgId);
allWarehouse = warehouseMapper.selectList(queryWrapper);
return allWarehouse;
......@@ -171,24 +165,21 @@ public class WarehouseServiceImpl extends ServiceImpl<WarehouseMapper,Warehouse>
return new ResponseResult(HttpStatus.SUCCESS, ReturnMsg.PASS);
}
private Warehouse queryWarehouse(WarehouseReq req) {
Warehouse app = this.getById(req.getId());
if (ObjectUtil.isNull(app)) {
throw new ServiceException(WarehouseExceptionEnum.WAREHOUSE_NOT_EXIST);
}
return app;
Warehouse warehouse = WarehoustExist(req.getId());
return warehouse;
}
private LambdaQueryWrapper<Product> createWrapper(ProductReq req) {
LambdaQueryWrapper<Product> wrapper = new LambdaQueryWrapper<>();
if (ObjectUtil.isEmpty(req)) {
return wrapper;
//判断仓库是否存在
@Override
public Warehouse WarehoustExist(String id) {
Warehouse warehouseMsg=this.getById(id);
if (ObjectUtil.isNull(warehouseMsg)){
throw new ServiceException(WarehouseExceptionEnum.WAREHOUSE_NOT_EXIST);
}
//根据业务编码查询
wrapper.like(ObjectUtil.isNotEmpty(req.getProductCode()), Product::getProductCode, req.getProductCode());
//根据企业名称模糊查询
wrapper.like(ObjectUtil.isNotEmpty(req.getName()), Product::getName, req.getName());
wrapper.orderByDesc(Product::getUpdateTime);
return wrapper;
return warehouseMsg;
}
}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论