mirror of
https://gitee.com/elegant_wings/dbd-meeting.git
synced 2025-06-21 17:09:36 +08:00
修改了对应的结构
This commit is contained in:
parent
8e695ed358
commit
3a44a2b2da
@ -21,7 +21,7 @@ import org.wf.jwtp.annotation.RequiresPermissions;
|
||||
* @date 2024-07-30
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("device")
|
||||
@RequestMapping("/repairDevice")
|
||||
public class RepairDeviceController extends BaseController {
|
||||
|
||||
@Autowired
|
||||
@ -38,7 +38,7 @@ public class RepairDeviceController extends BaseController {
|
||||
/**
|
||||
* 查询保修设备类型列表
|
||||
*/
|
||||
@RequiresPermissions("core:device:list")
|
||||
@RequiresPermissions("core:repairDevice:list")
|
||||
@GetMapping("list")
|
||||
public R list(RepairDevice repairDevice) {
|
||||
startPage();
|
||||
@ -49,7 +49,7 @@ public class RepairDeviceController extends BaseController {
|
||||
/**
|
||||
* 新增保存保修设备类型
|
||||
*/
|
||||
@RequiresPermissions("core:device:add")
|
||||
@RequiresPermissions("core:repairDevice:add")
|
||||
@PostMapping("save")
|
||||
public R addSave(@RequestBody RepairDevice repairDevice) {
|
||||
return toAjax(repairDeviceService.insertRepairDevice(repairDevice));
|
||||
@ -58,7 +58,7 @@ public class RepairDeviceController extends BaseController {
|
||||
/**
|
||||
* 修改保存保修设备类型
|
||||
*/
|
||||
@RequiresPermissions("core:device:edit")
|
||||
@RequiresPermissions("core:repairDevice:edit")
|
||||
@PostMapping("update")
|
||||
public R editSave(@RequestBody RepairDevice repairDevice) {
|
||||
return toAjax(repairDeviceService.updateRepairDevice(repairDevice));
|
||||
@ -67,10 +67,13 @@ public class RepairDeviceController extends BaseController {
|
||||
/**
|
||||
* 删除保修设备类型
|
||||
*/
|
||||
@RequiresPermissions("core:device:remove")
|
||||
@RequiresPermissions("core:repairDevice:remove")
|
||||
@PostMapping("remove")
|
||||
public R remove(String ids) {
|
||||
return toAjax(repairDeviceService.deleteRepairDeviceByIds(ids));
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
@ -0,0 +1,76 @@
|
||||
package com.ics.admin.controller;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.PathVariable;
|
||||
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;
|
||||
|
||||
import com.ics.common.core.domain.R;
|
||||
import com.ics.common.core.controller.BaseController;
|
||||
import com.ics.admin.domain.RepairFailureType;
|
||||
import com.ics.admin.service.IRepairFailureTypeService;
|
||||
import org.wf.jwtp.annotation.RequiresPermissions;
|
||||
|
||||
/**
|
||||
* 故障类型 提供者
|
||||
*
|
||||
* @author chen
|
||||
* @date 2024-08-05
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("repairFailureType")
|
||||
public class RepairFailureTypeController extends BaseController {
|
||||
|
||||
@Autowired
|
||||
private IRepairFailureTypeService repairFailureTypeService;
|
||||
|
||||
/**
|
||||
* 查询故障类型
|
||||
*/
|
||||
@GetMapping("get/{id}")
|
||||
public RepairFailureType get(@PathVariable("id") Long id) {
|
||||
return repairFailureTypeService.selectRepairFailureTypeById(id);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询故障类型列表
|
||||
*/
|
||||
@RequiresPermissions("RepairFailureType:repairType:list")
|
||||
@GetMapping("list")
|
||||
public R list(RepairFailureType repairFailureType) {
|
||||
startPage();
|
||||
return result(repairFailureTypeService.selectRepairFailureTypeList(repairFailureType));
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 新增保存故障类型
|
||||
*/
|
||||
@RequiresPermissions("RepairFailureType:repairType:add")
|
||||
@PostMapping("save")
|
||||
public R addSave(@RequestBody RepairFailureType repairFailureType) {
|
||||
return toAjax(repairFailureTypeService.insertRepairFailureType(repairFailureType));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改保存故障类型
|
||||
*/
|
||||
@RequiresPermissions("RepairFailureType:repairType:edit")
|
||||
@PostMapping("update")
|
||||
public R editSave(@RequestBody RepairFailureType repairFailureType) {
|
||||
return toAjax(repairFailureTypeService.updateRepairFailureType(repairFailureType));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除故障类型
|
||||
*/
|
||||
@RequiresPermissions("RepairFailureType:repairType:remove")
|
||||
@PostMapping("remove")
|
||||
public R remove(String ids) {
|
||||
return toAjax(repairFailureTypeService.deleteRepairFailureTypeByIds(ids));
|
||||
}
|
||||
|
||||
}
|
@ -38,7 +38,7 @@ public class RepairTypeController extends BaseController {
|
||||
/**
|
||||
* 查询设备类型列表
|
||||
*/
|
||||
@RequiresPermissions("RepairType:type:list")
|
||||
@RequiresPermissions("RepairType:repairType:list")
|
||||
@GetMapping("list")
|
||||
public R list(RepairType repairType) {
|
||||
startPage();
|
||||
@ -49,7 +49,7 @@ public class RepairTypeController extends BaseController {
|
||||
/**
|
||||
* 新增保存设备类型
|
||||
*/
|
||||
@RequiresPermissions("RepairType:type:add")
|
||||
@RequiresPermissions("RepairType:repairType:add")
|
||||
@PostMapping("save")
|
||||
public R addSave(@RequestBody RepairType repairType) {
|
||||
return toAjax(repairTypeService.insertRepairType(repairType));
|
||||
@ -58,7 +58,7 @@ public class RepairTypeController extends BaseController {
|
||||
/**
|
||||
* 修改保存设备类型
|
||||
*/
|
||||
@RequiresPermissions("RepairType:type:edit")
|
||||
@RequiresPermissions("RepairType:repairType:edit")
|
||||
@PostMapping("update")
|
||||
public R editSave(@RequestBody RepairType repairType) {
|
||||
return toAjax(repairTypeService.updateRepairType(repairType));
|
||||
@ -67,7 +67,7 @@ public class RepairTypeController extends BaseController {
|
||||
/**
|
||||
* 删除设备类型
|
||||
*/
|
||||
@RequiresPermissions("RepairType:type:remove")
|
||||
@RequiresPermissions("RepairType:repairType:remove")
|
||||
@PostMapping("remove")
|
||||
public R remove(String ids) {
|
||||
return toAjax(repairTypeService.deleteRepairTypeByIds(ids));
|
||||
|
@ -236,5 +236,7 @@ public class Repair extends BaseEntity<Repair> {
|
||||
|
||||
private Long parkId;
|
||||
|
||||
private Long failureTypeId;
|
||||
|
||||
|
||||
}
|
||||
|
@ -0,0 +1,27 @@
|
||||
package com.ics.admin.domain;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.ics.common.core.domain.BaseEntity;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* 故障类型对象 ics_repair_failure_type
|
||||
*
|
||||
* @author chen
|
||||
* @date 2024-08-05
|
||||
*/
|
||||
@Data
|
||||
@TableName("ics_repair_failure_type")
|
||||
public class RepairFailureType extends BaseEntity<RepairFailureType> {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/** 名称 */
|
||||
private String name;
|
||||
|
||||
/** 备注 */
|
||||
private String remark;
|
||||
|
||||
/** 园区ID */
|
||||
private Long parkId;
|
||||
|
||||
}
|
@ -0,0 +1,64 @@
|
||||
package com.ics.admin.mapper;
|
||||
|
||||
import com.ics.admin.domain.RepairFailureType;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 故障类型Mapper接口
|
||||
*
|
||||
* @author chen
|
||||
* @date 2024-08-05
|
||||
*/
|
||||
@Mapper
|
||||
public interface RepairFailureTypeMapper extends BaseMapper<RepairFailureType> {
|
||||
/**
|
||||
* 查询故障类型
|
||||
*
|
||||
* @param id 故障类型ID
|
||||
* @return 故障类型
|
||||
*/
|
||||
RepairFailureType selectRepairFailureTypeById(Long id);
|
||||
|
||||
/**
|
||||
* 查询故障类型列表
|
||||
*
|
||||
* @param repairFailureType 故障类型
|
||||
* @return 故障类型集合
|
||||
*/
|
||||
List<RepairFailureType> selectRepairFailureTypeList(RepairFailureType repairFailureType);
|
||||
|
||||
/**
|
||||
* 新增故障类型
|
||||
*
|
||||
* @param repairFailureType 故障类型
|
||||
* @return 结果
|
||||
*/
|
||||
int insertRepairFailureType(RepairFailureType repairFailureType);
|
||||
|
||||
/**
|
||||
* 修改故障类型
|
||||
*
|
||||
* @param repairFailureType 故障类型
|
||||
* @return 结果
|
||||
*/
|
||||
int updateRepairFailureType(RepairFailureType repairFailureType);
|
||||
|
||||
/**
|
||||
* 删除故障类型
|
||||
*
|
||||
* @param id 故障类型ID
|
||||
* @return 结果
|
||||
*/
|
||||
int deleteRepairFailureTypeById(Long id);
|
||||
|
||||
/**
|
||||
* 批量删除故障类型
|
||||
*
|
||||
* @param ids 需要删除的数据ID
|
||||
* @return 结果
|
||||
*/
|
||||
int deleteRepairFailureTypeByIds(String[] ids);
|
||||
}
|
@ -0,0 +1,61 @@
|
||||
package com.ics.admin.service;
|
||||
|
||||
import com.ics.admin.domain.RepairFailureType;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 故障类型Service接口
|
||||
*
|
||||
* @author chen
|
||||
* @date 2024-08-05
|
||||
*/
|
||||
public interface IRepairFailureTypeService extends IService<RepairFailureType> {
|
||||
/**
|
||||
* 查询故障类型
|
||||
*
|
||||
* @param id 故障类型ID
|
||||
* @return 故障类型
|
||||
*/
|
||||
RepairFailureType selectRepairFailureTypeById(Long id);
|
||||
|
||||
/**
|
||||
* 查询故障类型列表
|
||||
*
|
||||
* @param repairFailureType 故障类型
|
||||
* @return 故障类型集合
|
||||
*/
|
||||
List<RepairFailureType> selectRepairFailureTypeList(RepairFailureType repairFailureType);
|
||||
|
||||
/**
|
||||
* 新增故障类型
|
||||
*
|
||||
* @param repairFailureType 故障类型
|
||||
* @return 结果
|
||||
*/
|
||||
int insertRepairFailureType(RepairFailureType repairFailureType);
|
||||
|
||||
/**
|
||||
* 修改故障类型
|
||||
*
|
||||
* @param repairFailureType 故障类型
|
||||
* @return 结果
|
||||
*/
|
||||
int updateRepairFailureType(RepairFailureType repairFailureType);
|
||||
|
||||
/**
|
||||
* 批量删除故障类型
|
||||
*
|
||||
* @param ids 需要删除的数据ID
|
||||
* @return 结果
|
||||
*/
|
||||
int deleteRepairFailureTypeByIds(String ids);
|
||||
|
||||
/**
|
||||
* 删除故障类型信息
|
||||
*
|
||||
* @param id 故障类型ID
|
||||
* @return 结果
|
||||
*/
|
||||
int deleteRepairFailureTypeById(Long id);
|
||||
}
|
@ -42,6 +42,7 @@ public class RepairDeviceServiceImpl extends ServiceImpl<RepairDeviceMapper, Rep
|
||||
@Override
|
||||
public List<RepairDevice> selectRepairDeviceList(RepairDevice repairDevice) {
|
||||
QueryWrapper queryWrapper = new QueryWrapper();
|
||||
queryWrapper.eq(repairDevice.getTypeId() != null,"type_id",repairDevice.getTypeId());
|
||||
return repairDeviceMapper.selectList(queryWrapper);
|
||||
}
|
||||
|
||||
|
@ -0,0 +1,92 @@
|
||||
package com.ics.admin.service.impl;
|
||||
|
||||
import java.util.List;
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import com.ics.admin.mapper.RepairFailureTypeMapper;
|
||||
import com.ics.admin.domain.RepairFailureType;
|
||||
import com.ics.admin.service.IRepairFailureTypeService;
|
||||
|
||||
/**
|
||||
* 故障类型Service业务层处理
|
||||
*
|
||||
* @author chen
|
||||
* @date 2024-08-05
|
||||
*/
|
||||
@Service
|
||||
public class RepairFailureTypeServiceImpl extends ServiceImpl<RepairFailureTypeMapper, RepairFailureType> implements IRepairFailureTypeService {
|
||||
@Autowired
|
||||
private RepairFailureTypeMapper repairFailureTypeMapper;
|
||||
|
||||
/**
|
||||
* 查询故障类型
|
||||
*
|
||||
* @param id 故障类型ID
|
||||
* @return 故障类型
|
||||
*/
|
||||
@Override
|
||||
public RepairFailureType selectRepairFailureTypeById(Long id) {
|
||||
return repairFailureTypeMapper.selectById(id);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询故障类型列表
|
||||
*
|
||||
* @param repairFailureType 故障类型
|
||||
* @return 故障类型
|
||||
*/
|
||||
@Override
|
||||
public List<RepairFailureType> selectRepairFailureTypeList(RepairFailureType repairFailureType) {
|
||||
QueryWrapper queryWrapper = new QueryWrapper();
|
||||
return repairFailureTypeMapper.selectList(queryWrapper);
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增故障类型
|
||||
*
|
||||
* @param repairFailureType 故障类型
|
||||
* @return 结果
|
||||
*/
|
||||
@Override
|
||||
public int insertRepairFailureType(RepairFailureType repairFailureType) {
|
||||
return repairFailureTypeMapper.insert(repairFailureType);
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改故障类型
|
||||
*
|
||||
* @param repairFailureType 故障类型
|
||||
* @return 结果
|
||||
*/
|
||||
@Override
|
||||
public int updateRepairFailureType(RepairFailureType repairFailureType) {
|
||||
return repairFailureTypeMapper.updateById(repairFailureType);
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除故障类型对象
|
||||
*
|
||||
* @param ids 需要删除的数据ID
|
||||
* @return 结果
|
||||
*/
|
||||
@Override
|
||||
public int deleteRepairFailureTypeByIds(String ids) {
|
||||
String[] idsArray = StrUtil.split(ids,",");
|
||||
return repairFailureTypeMapper.deleteBatchIds(CollUtil.toList(idsArray));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除故障类型信息
|
||||
*
|
||||
* @param id 故障类型ID
|
||||
* @return 结果
|
||||
*/
|
||||
@Override
|
||||
public int deleteRepairFailureTypeById(Long id) {
|
||||
return repairFailureTypeMapper.deleteRepairFailureTypeById(id);
|
||||
}
|
||||
}
|
@ -0,0 +1,89 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper
|
||||
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.ics.admin.mapper.RepairFailureTypeMapper">
|
||||
|
||||
<resultMap type="com.ics.admin.domain.RepairFailureType" id="RepairFailureTypeResult">
|
||||
<result property="id" column="id" />
|
||||
<result property="name" column="name" />
|
||||
<result property="remark" column="remark" />
|
||||
<result property="deleteFlag" column="delete_flag" />
|
||||
<result property="createBy" column="create_by" />
|
||||
<result property="createTime" column="create_time" />
|
||||
<result property="updateBy" column="update_by" />
|
||||
<result property="updateTime" column="update_time" />
|
||||
<result property="tenantId" column="tenant_id" />
|
||||
<result property="parkId" column="park_id" />
|
||||
</resultMap>
|
||||
|
||||
<sql id="selectRepairFailureTypeVo">
|
||||
SELECT id, name, remark, delete_flag, create_by, create_time, update_by, update_time, tenant_id, park_id FROM ics_repair_failure_type
|
||||
</sql>
|
||||
|
||||
<select id="selectRepairFailureTypeList" parameterType="RepairFailureType" resultMap="RepairFailureTypeResult">
|
||||
<include refid="selectRepairFailureTypeVo"/>
|
||||
<where>
|
||||
<if test="name != null and name != ''"> AND name LIKE CONCAT('%', #{name}, '%')</if>
|
||||
</where>
|
||||
</select>
|
||||
|
||||
<select id="selectRepairFailureTypeById" parameterType="Long" resultMap="RepairFailureTypeResult">
|
||||
<include refid="selectRepairFailureTypeVo"/>
|
||||
WHERE id = #{id}
|
||||
</select>
|
||||
|
||||
<insert id="insertRepairFailureType" parameterType="RepairFailureType" useGeneratedKeys="true" keyProperty="id">
|
||||
INSERT INTO ics_repair_failure_type
|
||||
<trim prefix="(" suffix=")" suffixOverrides=",">
|
||||
<if test="name != null and name != ''">name,</if>
|
||||
<if test="remark != null and remark != ''">remark,</if>
|
||||
<if test="deleteFlag != null and deleteFlag != ''">delete_flag,</if>
|
||||
<if test="createBy != null and createBy != ''">create_by,</if>
|
||||
<if test="createTime != null ">create_time,</if>
|
||||
<if test="updateBy != null and updateBy != ''">update_by,</if>
|
||||
<if test="updateTime != null ">update_time,</if>
|
||||
<if test="tenantId != null ">tenant_id,</if>
|
||||
<if test="parkId != null ">park_id,</if>
|
||||
</trim>
|
||||
<trim prefix="values (" suffix=")" suffixOverrides=",">
|
||||
<if test="name != null and name != ''">#{name},</if>
|
||||
<if test="remark != null and remark != ''">#{remark},</if>
|
||||
<if test="deleteFlag != null and deleteFlag != ''">#{deleteFlag},</if>
|
||||
<if test="createBy != null and createBy != ''">#{createBy},</if>
|
||||
<if test="createTime != null ">#{createTime},</if>
|
||||
<if test="updateBy != null and updateBy != ''">#{updateBy},</if>
|
||||
<if test="updateTime != null ">#{updateTime},</if>
|
||||
<if test="tenantId != null ">#{tenantId},</if>
|
||||
<if test="parkId != null ">#{parkId},</if>
|
||||
</trim>
|
||||
</insert>
|
||||
|
||||
<update id="updateRepairFailureType" parameterType="RepairFailureType">
|
||||
UPDATE ics_repair_failure_type
|
||||
<trim prefix="SET" suffixOverrides=",">
|
||||
<if test="name != null and name != ''">name = #{name},</if>
|
||||
<if test="remark != null and remark != ''">remark = #{remark},</if>
|
||||
<if test="deleteFlag != null and deleteFlag != ''">delete_flag = #{deleteFlag},</if>
|
||||
<if test="createBy != null and createBy != ''">create_by = #{createBy},</if>
|
||||
<if test="createTime != null ">create_time = #{createTime},</if>
|
||||
<if test="updateBy != null and updateBy != ''">update_by = #{updateBy},</if>
|
||||
<if test="updateTime != null ">update_time = #{updateTime},</if>
|
||||
<if test="tenantId != null ">tenant_id = #{tenantId},</if>
|
||||
<if test="parkId != null ">park_id = #{parkId},</if>
|
||||
</trim>
|
||||
WHERE id = #{id}
|
||||
</update>
|
||||
|
||||
<delete id="deleteRepairFailureTypeById" parameterType="Long">
|
||||
DELETE FROM ics_repair_failure_type WHERE id = #{id}
|
||||
</delete>
|
||||
|
||||
<delete id="deleteRepairFailureTypeByIds" parameterType="String">
|
||||
DELETE FROM ics_repair_failure_type where id in
|
||||
<foreach item="id" collection="array" open="(" separator="," close=")">
|
||||
#{id}
|
||||
</foreach>
|
||||
</delete>
|
||||
|
||||
</mapper>
|
@ -13,6 +13,7 @@
|
||||
<result property="typeId" column="type_id"/>
|
||||
<result property="repairVoice" column="repair_voice"/>
|
||||
<result property="dispatcherId" column="dispatcher_id"/>
|
||||
<result property="failureTypeId" column="failure_type_id"/>
|
||||
<result property="name" column="name"/>
|
||||
<result property="userId" column="user_id"/>
|
||||
<result property="phone" column="phone"/>
|
||||
@ -79,6 +80,7 @@
|
||||
r.dispatcher_id,
|
||||
r.type_id,
|
||||
r.repair_device,
|
||||
r.failure_type_id,
|
||||
r.repair_time,
|
||||
r.repair_images,
|
||||
r.repair_fee,
|
||||
@ -95,18 +97,8 @@
|
||||
r.update_by,
|
||||
r.update_time,
|
||||
r.tenant_id,
|
||||
r.park_id,
|
||||
ic.id AS cid,
|
||||
ic.name AS cname,
|
||||
ip.id AS pid,
|
||||
ip.name AS pname,
|
||||
u.id AS userId,
|
||||
u.username,
|
||||
u.mobile
|
||||
r.park_id
|
||||
FROM ics_repair AS r
|
||||
LEFT JOIN ics_customer AS ic ON r.customer_id = ic.id
|
||||
LEFT JOIN sys_user AS u ON r.worker_id = u.id
|
||||
LEFT JOIN ics_park AS ip ON ip.id = r.park_id
|
||||
</sql>
|
||||
|
||||
<select id="selectRepairList" parameterType="com.ics.admin.domain.Repair" resultMap="RepairResult">
|
||||
|
@ -146,6 +146,25 @@ public class RepairAPIController extends BaseController {
|
||||
return toAjax(repairService.insertRepair(repair));
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取设备分类列表
|
||||
* @param repairType
|
||||
* @return
|
||||
*/
|
||||
@Ignore
|
||||
@GetMapping("deviceTypeList")
|
||||
public R deviceTypeList(RepairType repairType) {
|
||||
return result(repairTypeService.selectRepairTypeList(repairType));
|
||||
}
|
||||
|
||||
@Ignore
|
||||
@GetMapping("deviceList")
|
||||
public R deviceList(RepairDevice repairDevice) {
|
||||
return result(repairDeviceService.selectRepairDeviceList(repairDevice));
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 用户评价工单
|
||||
|
Loading…
x
Reference in New Issue
Block a user