diff --git a/nxhs-service/src/main/java/cc/yunxi/controller/EntranceController.java b/nxhs-service/src/main/java/cc/yunxi/controller/EntranceController.java index 6ef635c..5e2915f 100644 --- a/nxhs-service/src/main/java/cc/yunxi/controller/EntranceController.java +++ b/nxhs-service/src/main/java/cc/yunxi/controller/EntranceController.java @@ -18,10 +18,15 @@ import cc.yunxi.domain.vo.client.ClientRespVO; import cc.yunxi.domain.vo.client.ClientUpdateVO; import cc.yunxi.domain.vo.device.RecycleDeviceOpenDoorReqVO; import cc.yunxi.domain.vo.device.RecycleDeviceRespVO; +import cc.yunxi.domain.vo.file.FileUploadReqVO; +import cc.yunxi.domain.vo.file.FileUploadRespVO; import cc.yunxi.enums.UserTypeEnum; import cc.yunxi.service.IClientService; +import cc.yunxi.service.IFileService; +import cc.yunxi.service.IRecycleDevicePhotoService; import cc.yunxi.service.IRecycleDeviceService; import cc.yunxi.service.impl.CommonService; +import cc.yunxi.utils.RestTemplateUtils; import cc.yunxi.utils.UserContext; import cn.hutool.core.util.StrUtil; import cn.hutool.json.JSONArray; @@ -33,7 +38,10 @@ import lombok.RequiredArgsConstructor; import lombok.SneakyThrows; import lombok.extern.slf4j.Slf4j; import org.springframework.http.HttpHeaders; +import org.springframework.http.MediaType; +import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; +import org.springframework.web.client.RestTemplate; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; @@ -56,6 +64,7 @@ import java.util.Map; public class EntranceController { private static final String OPEN_API_URL = "https://dev-api.zsgai.com/open_api/open_door_for_devsn"; + private static final String CLOSE_API_URL = "https://dev-api.zsgai.com/open_api/close_door_for_devsn"; @Resource private CommonService commonService; @@ -63,6 +72,13 @@ public class EntranceController { @Resource private IRecycleDeviceService deviceService; + @Resource + private final IFileService fileService; + + @Resource + private IRecycleDevicePhotoService recycleDevicePhotoService; + + @ApiOperation("回收柜二维码请求设备信息接口") @RequestMapping("/dev_qr_code/wx9e638ba024ed7868") public CommonResult ZSG_QrCode_DeviceInfo(@RequestParam(name="devsn",required = true) String devSn) { @@ -97,8 +113,51 @@ public class EntranceController { @SneakyThrows @ApiOperation("开门") @GetMapping("/open_door_for_devsn") - public CommonResult ZSG_OpenDoor(@RequestBody RecycleDeviceOpenDoorReqVO recycleDeviceOpenDoorReqVO) { -// devUserId + public CommonResult ZSG_OpenDoor(@RequestParam(name="devsn",required = true) String devsn, + @RequestParam(name="loginName",required = true) String loginName, + @RequestParam(name="devUserId",required = true) String devUserId, + @RequestParam(name="bagNo",required = true) String bagNo) { + + + //@RequestBody RecycleDeviceOpenDoorReqVO recycleDeviceOpenDoorReqVO + //String urlGet = OPEN_API_URL_TEST+"?devsn="+recycleDeviceOpenDoorReqVO.getDevsn()+"&loginName="+recycleDeviceOpenDoorReqVO.getLoginName()+"&devUserId=571110&bagNo="+recycleDeviceOpenDoorReqVO.getBagNo(); + + // + String urlGet = OPEN_API_URL+"?devsn="+devsn+"&loginName="+loginName+"&devUserId="+devUserId+"&bagNo="+bagNo; + ResponseEntity result = RestTemplateUtils.get(urlGet,String.class); + return CommonResult.success("ok"); } + + @SneakyThrows + @ApiOperation("关门") + @GetMapping("/close_door_for_devsn") + public CommonResult ZSG_CloseDoor(@RequestParam(name="devsn",required = true) String devsn, + @RequestParam(name="loginName",required = true) String loginName, + @RequestParam(name="userid",required = true) String userid, + @RequestParam(name="doorid",required = true) String doorid) { + + + String urlGet = CLOSE_API_URL+"?devsn="+devsn+"&loginName="+loginName+"&userid="+userid+"&doorid="+doorid; + ResponseEntity result = RestTemplateUtils.get(urlGet,String.class); + + return CommonResult.success("ok"); + } + + @ApiOperation("投递照片上传") + @PostMapping(value ="/device/file/delivery_photo", consumes = MediaType.MULTIPART_FORM_DATA_VALUE) + public CommonResult ZSG_DeliveryPhoto(@RequestParam(name="orderid ",required = true) String orderid,@RequestBody FileUploadReqVO uploadReqVO) { + FileUploadRespVO uploadRespVO = fileService.uploadImage(uploadReqVO); + + recycleDevicePhotoService.addRecycleDevicePhoto(orderid,uploadRespVO.getUrl()); + return CommonResult.success(uploadRespVO); + } + + @ApiOperation("清运照片上传") + @PostMapping(value ="/device/file/clean_photo", consumes = MediaType.MULTIPART_FORM_DATA_VALUE) + public CommonResult ZSG_CleanPhoto(@RequestParam(name="orderid ",required = true) String orderid,@RequestBody FileUploadReqVO uploadReqVO) { + FileUploadRespVO uploadRespVO = fileService.uploadImage(uploadReqVO); + recycleDevicePhotoService.addRecycleDevicePhoto(orderid,uploadRespVO.getUrl()); + return CommonResult.success(uploadRespVO); + } } diff --git a/nxhs-service/src/main/java/cc/yunxi/domain/po/RecycleDevicePhoto.java b/nxhs-service/src/main/java/cc/yunxi/domain/po/RecycleDevicePhoto.java new file mode 100644 index 0000000..486de50 --- /dev/null +++ b/nxhs-service/src/main/java/cc/yunxi/domain/po/RecycleDevicePhoto.java @@ -0,0 +1,58 @@ +package cc.yunxi.domain.po; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.time.LocalDateTime; + +/** + *

+ * 回收柜设备表 + *

+ * + * @author ccongli + * @since 2024-04-11 10:33:58 + */ +@Data +@TableName("nx_recycle_device_photo") +@ApiModel(value = "RecycleDevicePhoto对象", description = "回收柜投递/清运照片表") +public class RecycleDevicePhoto { + + @ApiModelProperty("主键id") + @EqualsAndHashCode.Exclude + @TableId(value = "id", type = IdType.ASSIGN_ID) + private String id; + + @ApiModelProperty("订单编号") + @TableField("order_id") + private String orderId; + + @ApiModelProperty("上传文件地址") + @TableField("file_url") + private String fileUrl; + + + @ApiModelProperty("创建时间") + @TableField("f_creator_time") + private LocalDateTime createTime; + + @ApiModelProperty("更新时间") + @TableField("f_last_modify_time") + private LocalDateTime updateTime; + + @ApiModelProperty("公司id") + @TableField("company_id") + private String companyId; + + @ApiModelProperty("组织id") + @TableField("organize_json_id") + private String organizeJsonId; + + +} diff --git a/nxhs-service/src/main/java/cc/yunxi/domain/vo/device/RecycleDeviceOpenDoorReqVO.java b/nxhs-service/src/main/java/cc/yunxi/domain/vo/device/RecycleDeviceOpenDoorReqVO.java index 863b076..27dcf8e 100644 --- a/nxhs-service/src/main/java/cc/yunxi/domain/vo/device/RecycleDeviceOpenDoorReqVO.java +++ b/nxhs-service/src/main/java/cc/yunxi/domain/vo/device/RecycleDeviceOpenDoorReqVO.java @@ -22,15 +22,15 @@ import java.time.LocalDateTime; @ApiModel(description = "设备柜开门 Request VO") public class RecycleDeviceOpenDoorReqVO { - @ApiModelProperty(value = "设备编码", required = false, example = "5810fccc55b6371c") + @ApiModelProperty(value = "设备编码", required = true) @NotBlank(message = "设备编码不能为空") private String devsn; - @ApiModelProperty(value = "筒编号", required = false, example = "1") - @NotBlank(message = "筒编号不能为空") - private String doorid; + @ApiModelProperty(value = "手机号码", required = true) + @NotBlank(message = "手机号码不能为空") + private String loginName; - @ApiModelProperty(value = "角色", required = false, example = "9") - @NotBlank(message = "角色不能为空") - private String role; + @ApiModelProperty(value = "垃圾袋编码", required = true) + @NotBlank(message = "垃圾袋编码不能为空") + private String bagNo; } diff --git a/nxhs-service/src/main/java/cc/yunxi/domain/vo/device/RecycleDeviceRespVO.java b/nxhs-service/src/main/java/cc/yunxi/domain/vo/device/RecycleDeviceRespVO.java index e087767..fb85275 100644 --- a/nxhs-service/src/main/java/cc/yunxi/domain/vo/device/RecycleDeviceRespVO.java +++ b/nxhs-service/src/main/java/cc/yunxi/domain/vo/device/RecycleDeviceRespVO.java @@ -28,6 +28,45 @@ import java.util.List; @Accessors(chain = true) public class RecycleDeviceRespVO { + // -------------------公共上报参数-------------------------------- + @ApiModelProperty("B后台设备id 默认为1代表没有配置文件") + private String devid; + + @ApiModelProperty("B后台机构id 同orgId 默认为1代表没有配置文件") + private String o; + + @ApiModelProperty("设备类型 固定值 33 = 0x21") + private String devType; + + @ApiModelProperty("小程序appid 默认为小智环保,需要在机构中修改") + private String appid; + + @ApiModelProperty("设备标识 固定值 android") + private String clientType; + + @ApiModelProperty("客户端app版本") + private String clientVersion; + + @ApiModelProperty("登陆类型  1手机号登陆 2网络登陆(小程序)") + private String loginType; + + @ApiModelProperty("登陆类型描述 手机号登陆 网络登陆") + private String ltn; + + @ApiModelProperty("测试模式 1为测试模式") + private String test; + + @ApiModelProperty("ac版本1") + private String ad; + + @ApiModelProperty("配置版本,在B后台生成后下发到设备,观察屏幕上C*判断是否下发成功,*为对应的配置版本号,可在B后台设备详情页面查看最新配置版本") + private String app_config_version; + + @ApiModelProperty("ac版本2") + private String acc; + + // -------------------公共上报参数-------------------------------- + @ApiModelProperty("设备编码") private String devsn; diff --git a/nxhs-service/src/main/java/cc/yunxi/mapper/RecycleDevicePhotoMapper.java b/nxhs-service/src/main/java/cc/yunxi/mapper/RecycleDevicePhotoMapper.java new file mode 100644 index 0000000..218a98a --- /dev/null +++ b/nxhs-service/src/main/java/cc/yunxi/mapper/RecycleDevicePhotoMapper.java @@ -0,0 +1,19 @@ +package cc.yunxi.mapper; + +import cc.yunxi.domain.po.RecycleDevice; +import cc.yunxi.domain.po.RecycleDevicePhoto; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Mapper; + +/** + *

+ * 回收柜设备表 Mapper 接口 + *

+ * + * @author ccongli + * @since 2024-04-11 10:33:58 + */ +@Mapper +public interface RecycleDevicePhotoMapper extends BaseMapper { + +} diff --git a/nxhs-service/src/main/java/cc/yunxi/service/IRecycleDevicePhotoService.java b/nxhs-service/src/main/java/cc/yunxi/service/IRecycleDevicePhotoService.java new file mode 100644 index 0000000..6c5afde --- /dev/null +++ b/nxhs-service/src/main/java/cc/yunxi/service/IRecycleDevicePhotoService.java @@ -0,0 +1,21 @@ +package cc.yunxi.service; + +import cc.yunxi.domain.po.RecycleDevice; +import cc.yunxi.domain.po.RecycleDevicePhoto; +import cc.yunxi.domain.vo.device.RecycleDeviceRespVO; +import com.baomidou.mybatisplus.extension.service.IService; + +import javax.validation.Valid; + +/** + *

+ * 回收柜设备表 服务类 + *

+ * + * @author ccongli + * @since 2024-04-11 10:33:58 + */ +public interface IRecycleDevicePhotoService extends IService { + + Boolean addRecycleDevicePhoto(String orderId,String url); +} diff --git a/nxhs-service/src/main/java/cc/yunxi/service/RestTemplateToInterface.java b/nxhs-service/src/main/java/cc/yunxi/service/RestTemplateToInterface.java deleted file mode 100644 index 5906e44..0000000 --- a/nxhs-service/src/main/java/cc/yunxi/service/RestTemplateToInterface.java +++ /dev/null @@ -1,39 +0,0 @@ -package cc.yunxi.service; - -import cn.hutool.json.JSONObject; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.http.*; -import org.springframework.stereotype.Service; -import org.springframework.web.client.RestTemplate; - -@Service -public class RestTemplateToInterface { - - @Autowired - private RestTemplate restTemplate; - - /** - * exchange - * @return - */ - public String restPost(String url, Integer age, String name){ - //header参数 - HttpHeaders headers = new HttpHeaders(); - String token = "asdfaf2322"; - headers.add("authorization", token); - headers.setContentType(MediaType.APPLICATION_JSON); - - //放入body中的json参数 - JSONObject obj = new JSONObject(); - obj.put("age", age); - obj.put("name", name); - - //组装 - HttpEntity request = new HttpEntity<>(obj, headers); - ResponseEntity responseEntity = restTemplate.exchange(url, HttpMethod.POST, request, String.class); - String body = responseEntity.getBody(); - return body; - } - - -} diff --git a/nxhs-service/src/main/java/cc/yunxi/service/impl/RecycleDevicePhotoServiceImpl.java b/nxhs-service/src/main/java/cc/yunxi/service/impl/RecycleDevicePhotoServiceImpl.java new file mode 100644 index 0000000..c6e2379 --- /dev/null +++ b/nxhs-service/src/main/java/cc/yunxi/service/impl/RecycleDevicePhotoServiceImpl.java @@ -0,0 +1,49 @@ +package cc.yunxi.service.impl; + +import cc.yunxi.common.domain.LambdaQueryWrapperX; +import cc.yunxi.common.domain.LambdaUpdateWrapperX; +import cc.yunxi.common.utils.BeanUtils; +import cc.yunxi.domain.po.RecycleDevice; +import cc.yunxi.domain.po.RecycleDeviceDoor; +import cc.yunxi.domain.po.RecycleDevicePhoto; +import cc.yunxi.domain.vo.device.RecycleDeviceRespVO; +import cc.yunxi.mapper.RecycleDeviceMapper; +import cc.yunxi.mapper.RecycleDevicePhotoMapper; +import cc.yunxi.service.IRecycleDeviceDoorService; +import cc.yunxi.service.IRecycleDevicePhotoService; +import cc.yunxi.service.IRecycleDeviceService; +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import java.time.LocalDateTime; +import java.util.List; + +/** + *

+ * 回收柜设备表 服务实现类 + *

+ * + * @author ccongli + * @since 2024-04-11 10:33:58 + */ +@Service +public class RecycleDevicePhotoServiceImpl extends ServiceImpl implements IRecycleDevicePhotoService { + + + @Override + public Boolean addRecycleDevicePhoto(String orderId,String url) { + RecycleDevicePhoto recycleDevicePhoto = new RecycleDevicePhoto(); + recycleDevicePhoto.setId(orderId); + recycleDevicePhoto.setFileUrl(url); + recycleDevicePhoto.setCreateTime(LocalDateTime.now()); + return this.save(recycleDevicePhoto); + } + + + + +} diff --git a/nxhs-service/src/main/java/cc/yunxi/utils/RestTemplateUtils.java b/nxhs-service/src/main/java/cc/yunxi/utils/RestTemplateUtils.java new file mode 100644 index 0000000..73578d1 --- /dev/null +++ b/nxhs-service/src/main/java/cc/yunxi/utils/RestTemplateUtils.java @@ -0,0 +1,616 @@ +package cc.yunxi.utils; + +import org.springframework.http.*; +import org.springframework.web.client.RestTemplate; + +import java.util.Map; + + +public class RestTemplateUtils { + + private static final RestTemplate restTemplate = new RestTemplate(); + + // ----------------------------------GET------------------------------------------------------- + + /** + * GET请求调用方式 + * + * @param url 请求URL + * @param responseType 返回对象类型 + * @return ResponseEntity 响应对象封装类 + */ + public static ResponseEntity get(String url, Class responseType) { + return restTemplate.getForEntity(url, responseType); + } + + /** + * GET请求调用方式 + * + * @param url 请求URL + * @param responseType 返回对象类型 + * @param params URL中的变量,按顺序依次对应 + * @return ResponseEntity 响应对象封装类 + */ + public static ResponseEntity get(String url, Class responseType, Object... params) { + return restTemplate.getForEntity(url, responseType, params); + } + + /** + * GET请求调用方式 + * + * @param url 请求URL + * @param responseType 返回对象类型 + * @param params URL中的变量,与Map中的key对应 + * @return ResponseEntity 响应对象封装类 + */ + public static ResponseEntity get(String url, Class responseType, Map params) { + return restTemplate.getForEntity(url, responseType, params); + } + + /** + * 带请求头的GET请求调用方式 + * + * @param url 请求URL + * @param headers 请求头参数 + * @param responseType 返回对象类型 + * @param params URL中的变量,按顺序依次对应 + * @return ResponseEntity 响应对象封装类 + */ + public static ResponseEntity get(String url, Map headers, Class responseType, Object... params) { + HttpHeaders httpHeaders = new HttpHeaders(); + httpHeaders.setAll(headers); + return get(url, httpHeaders, responseType, params); + } + + /** + * 带请求头的GET请求调用方式 + * + * @param url 请求URL + * @param headers 请求头参数 + * @param responseType 返回对象类型 + * @param params URL中的变量,按顺序依次对应 + * @return ResponseEntity 响应对象封装类 + */ + public static ResponseEntity get(String url, HttpHeaders headers, Class responseType, Object... params) { + HttpEntity requestEntity = new HttpEntity<>(headers); + return exchange(url, HttpMethod.GET, requestEntity, responseType, params); + } + + /** + * 带请求头的GET请求调用方式 + * + * @param url 请求URL + * @param headers 请求头参数 + * @param responseType 返回对象类型 + * @param params URL中的变量,与Map中的key对应 + * @return ResponseEntity 响应对象封装类 + */ + public static ResponseEntity get(String url, Map headers, Class responseType, Map params) { + HttpHeaders httpHeaders = new HttpHeaders(); + httpHeaders.setAll(headers); + return get(url, httpHeaders, responseType, params); + } + + /** + * 带请求头的GET请求调用方式 + * + * @param url 请求URL + * @param headers 请求头参数 + * @param responseType 返回对象类型 + * @param params URL中的变量,与Map中的key对应 + * @return ResponseEntity 响应对象封装类 + */ + public static ResponseEntity get(String url, HttpHeaders headers, Class responseType, Map params) { + HttpEntity requestEntity = new HttpEntity<>(headers); + return exchange(url, HttpMethod.GET, requestEntity, responseType, params); + } + + // ----------------------------------POST------------------------------------------------------- + + /** + * POST请求调用方式 + * + * @param url 请求URL + * @param responseType 返回对象类型 + * @return + */ + public static ResponseEntity post(String url, Class responseType) { + return restTemplate.postForEntity(url, HttpEntity.EMPTY, responseType); + } + + /** + * POST请求调用方式 + * + * @param url 请求URL + * @param requestBody 请求参数体 + * @param responseType 返回对象类型 + * @return ResponseEntity 响应对象封装类 + */ + public static ResponseEntity post(String url, Object requestBody, Class responseType) { + return restTemplate.postForEntity(url, requestBody, responseType); + } + + /** + * POST请求调用方式 + * + * @param url 请求URL + * @param requestBody 请求参数体 + * @param responseType 返回对象类型 + * @param params URL中的变量,按顺序依次对应 + * @return ResponseEntity 响应对象封装类 + */ + public static ResponseEntity post(String url, Object requestBody, Class responseType, Object... params) { + return restTemplate.postForEntity(url, requestBody, responseType, params); + } + + /** + * POST请求调用方式 + * + * @param url 请求URL + * @param requestBody 请求参数体 + * @param responseType 返回对象类型 + * @param params URL中的变量,与Map中的key对应 + * @return ResponseEntity 响应对象封装类 + */ + public static ResponseEntity post(String url, Object requestBody, Class responseType, Map params) { + return restTemplate.postForEntity(url, requestBody, responseType, params); + } + + /** + * 带请求头的POST请求调用方式 + * + * @param url 请求URL + * @param headers 请求头参数 + * @param requestBody 请求参数体 + * @param responseType 返回对象类型 + * @param params URL中的变量,按顺序依次对应 + * @return ResponseEntity 响应对象封装类 + */ + public static ResponseEntity post(String url, Map headers, Object requestBody, Class responseType, Object... params) { + HttpHeaders httpHeaders = new HttpHeaders(); + httpHeaders.setAll(headers); + return post(url, httpHeaders, requestBody, responseType, params); + } + + /** + * 带请求头的POST请求调用方式 + * + * @param url 请求URL + * @param headers 请求头参数 + * @param requestBody 请求参数体 + * @param responseType 返回对象类型 + * @param params URL中的变量,按顺序依次对应 + * @return ResponseEntity 响应对象封装类 + */ + public static ResponseEntity post(String url, HttpHeaders headers, Object requestBody, Class responseType, Object... params) { + HttpEntity requestEntity = new HttpEntity(requestBody, headers); + return post(url, requestEntity, responseType, params); + } + + /** + * 带请求头的POST请求调用方式 + * + * @param url 请求URL + * @param headers 请求头参数 + * @param requestBody 请求参数体 + * @param responseType 返回对象类型 + * @param params URL中的变量,与Map中的key对应 + * @return ResponseEntity 响应对象封装类 + */ + public static ResponseEntity post(String url, Map headers, Object requestBody, Class responseType, Map params) { + HttpHeaders httpHeaders = new HttpHeaders(); + httpHeaders.setAll(headers); + return post(url, httpHeaders, requestBody, responseType, params); + } + + /** + * 带请求头的POST请求调用方式 + * + * @param url 请求URL + * @param headers 请求头参数 + * @param requestBody 请求参数体 + * @param responseType 返回对象类型 + * @param params URL中的变量,与Map中的key对应 + * @return ResponseEntity 响应对象封装类 + */ + public static ResponseEntity post(String url, HttpHeaders headers, Object requestBody, Class responseType, Map params) { + HttpEntity requestEntity = new HttpEntity(requestBody, headers); + return post(url, requestEntity, responseType, params); + } + + /** + * 自定义请求头和请求体的POST请求调用方式 + * + * @param url 请求URL + * @param requestEntity 请求头和请求体封装对象 + * @param responseType 返回对象类型 + * @param params URL中的变量,按顺序依次对应 + * @return ResponseEntity 响应对象封装类 + */ + public static ResponseEntity post(String url, HttpEntity requestEntity, Class responseType, Object... params) { + return restTemplate.exchange(url, HttpMethod.POST, requestEntity, responseType, params); + } + + /** + * 自定义请求头和请求体的POST请求调用方式 + * + * @param url 请求URL + * @param requestEntity 请求头和请求体封装对象 + * @param responseType 返回对象类型 + * @param params URL中的变量,与Map中的key对应 + * @return ResponseEntity 响应对象封装类 + */ + public static ResponseEntity post(String url, HttpEntity requestEntity, Class responseType, Map params) { + return restTemplate.exchange(url, HttpMethod.POST, requestEntity, responseType, params); + } + + // ----------------------------------PUT------------------------------------------------------- + + /** + * PUT请求调用方式 + * + * @param url 请求URL + * @param responseType 返回对象类型 + * @param params URL中的变量,按顺序依次对应 + * @return ResponseEntity 响应对象封装类 + */ + public static ResponseEntity put(String url, Class responseType, Object... params) { + return put(url, HttpEntity.EMPTY, responseType, params); + } + + /** + * PUT请求调用方式 + * + * @param url 请求URL + * @param requestBody 请求参数体 + * @param responseType 返回对象类型 + * @param params URL中的变量,按顺序依次对应 + * @return ResponseEntity 响应对象封装类 + */ + public static ResponseEntity put(String url, Object requestBody, Class responseType, Object... params) { + HttpEntity requestEntity = new HttpEntity(requestBody); + return put(url, requestEntity, responseType, params); + } + + /** + * PUT请求调用方式 + * + * @param url 请求URL + * @param requestBody 请求参数体 + * @param responseType 返回对象类型 + * @param params URL中的变量,与Map中的key对应 + * @return ResponseEntity 响应对象封装类 + */ + public static ResponseEntity put(String url, Object requestBody, Class responseType, Map params) { + HttpEntity requestEntity = new HttpEntity(requestBody); + return put(url, requestEntity, responseType, params); + } + + /** + * 带请求头的PUT请求调用方式 + * + * @param url 请求URL + * @param headers 请求头参数 + * @param requestBody 请求参数体 + * @param responseType 返回对象类型 + * @param params URL中的变量,按顺序依次对应 + * @return ResponseEntity 响应对象封装类 + */ + public static ResponseEntity put(String url, Map headers, Object requestBody, Class responseType, Object... params) { + HttpHeaders httpHeaders = new HttpHeaders(); + httpHeaders.setAll(headers); + return put(url, httpHeaders, requestBody, responseType, params); + } + + /** + * 带请求头的PUT请求调用方式 + * + * @param url 请求URL + * @param headers 请求头参数 + * @param requestBody 请求参数体 + * @param responseType 返回对象类型 + * @param params URL中的变量,按顺序依次对应 + * @return ResponseEntity 响应对象封装类 + */ + public static ResponseEntity put(String url, HttpHeaders headers, Object requestBody, Class responseType, Object... params) { + HttpEntity requestEntity = new HttpEntity(requestBody, headers); + return put(url, requestEntity, responseType, params); + } + + /** + * 带请求头的PUT请求调用方式 + * + * @param url 请求URL + * @param headers 请求头参数 + * @param requestBody 请求参数体 + * @param responseType 返回对象类型 + * @param params URL中的变量,与Map中的key对应 + * @return ResponseEntity 响应对象封装类 + */ + public static ResponseEntity put(String url, Map headers, Object requestBody, Class responseType, Map params) { + HttpHeaders httpHeaders = new HttpHeaders(); + httpHeaders.setAll(headers); + return put(url, httpHeaders, requestBody, responseType, params); + } + + /** + * 带请求头的PUT请求调用方式 + * + * @param url 请求URL + * @param headers 请求头参数 + * @param requestBody 请求参数体 + * @param responseType 返回对象类型 + * @param params URL中的变量,与Map中的key对应 + * @return ResponseEntity 响应对象封装类 + */ + public static ResponseEntity put(String url, HttpHeaders headers, Object requestBody, Class responseType, Map params) { + HttpEntity requestEntity = new HttpEntity(requestBody, headers); + return put(url, requestEntity, responseType, params); + } + + /** + * 自定义请求头和请求体的PUT请求调用方式 + * + * @param url 请求URL + * @param requestEntity 请求头和请求体封装对象 + * @param responseType 返回对象类型 + * @param params URL中的变量,按顺序依次对应 + * @return ResponseEntity 响应对象封装类 + */ + public static ResponseEntity put(String url, HttpEntity requestEntity, Class responseType, Object... params) { + return restTemplate.exchange(url, HttpMethod.PUT, requestEntity, responseType, params); + } + + /** + * 自定义请求头和请求体的PUT请求调用方式 + * + * @param url 请求URL + * @param requestEntity 请求头和请求体封装对象 + * @param responseType 返回对象类型 + * @param params URL中的变量,与Map中的key对应 + * @return ResponseEntity 响应对象封装类 + */ + public static ResponseEntity put(String url, HttpEntity requestEntity, Class responseType, Map params) { + return restTemplate.exchange(url, HttpMethod.PUT, requestEntity, responseType, params); + } + + // ----------------------------------DELETE------------------------------------------------------- + + /** + * DELETE请求调用方式 + * + * @param url 请求URL + * @param responseType 返回对象类型 + * @param params URL中的变量,按顺序依次对应 + * @return ResponseEntity 响应对象封装类 + */ + public static ResponseEntity delete(String url, Class responseType, Object... params) { + return delete(url, HttpEntity.EMPTY, responseType, params); + } + + /** + * DELETE请求调用方式 + * + * @param url 请求URL + * @param responseType 返回对象类型 + * @param params URL中的变量,与Map中的key对应 + * @return ResponseEntity 响应对象封装类 + */ + public static ResponseEntity delete(String url, Class responseType, Map params) { + return delete(url, HttpEntity.EMPTY, responseType, params); + } + + /** + * DELETE请求调用方式 + * + * @param url 请求URL + * @param requestBody 请求参数体 + * @param responseType 返回对象类型 + * @param params URL中的变量,按顺序依次对应 + * @return ResponseEntity 响应对象封装类 + */ + public static ResponseEntity delete(String url, Object requestBody, Class responseType, Object... params) { + HttpEntity requestEntity = new HttpEntity(requestBody); + return delete(url, requestEntity, responseType, params); + } + + /** + * DELETE请求调用方式 + * + * @param url 请求URL + * @param requestBody 请求参数体 + * @param responseType 返回对象类型 + * @param params URL中的变量,与Map中的key对应 + * @return ResponseEntity 响应对象封装类 + */ + public static ResponseEntity delete(String url, Object requestBody, Class responseType, Map params) { + HttpEntity requestEntity = new HttpEntity(requestBody); + return delete(url, requestEntity, responseType, params); + } + + /** + * 带请求头的DELETE请求调用方式 + * + * @param url 请求URL + * @param headers 请求头参数 + * @param responseType 返回对象类型 + * @param params URL中的变量,按顺序依次对应 + * @return ResponseEntity 响应对象封装类 + */ + public static ResponseEntity delete(String url, Map headers, Class responseType, Object... params) { + HttpHeaders httpHeaders = new HttpHeaders(); + httpHeaders.setAll(headers); + return delete(url, httpHeaders, responseType, params); + } + + /** + * 带请求头的DELETE请求调用方式 + * + * @param url 请求URL + * @param headers 请求头参数 + * @param responseType 返回对象类型 + * @param params URL中的变量,按顺序依次对应 + * @return ResponseEntity 响应对象封装类 + */ + public static ResponseEntity delete(String url, HttpHeaders headers, Class responseType, Object... params) { + HttpEntity requestEntity = new HttpEntity(headers); + return delete(url, requestEntity, responseType, params); + } + + /** + * 带请求头的DELETE请求调用方式 + * + * @param url 请求URL + * @param headers 请求头参数 + * @param responseType 返回对象类型 + * @param params URL中的变量,与Map中的key对应 + * @return ResponseEntity 响应对象封装类 + */ + public static ResponseEntity delete(String url, Map headers, Class responseType, Map params) { + HttpHeaders httpHeaders = new HttpHeaders(); + httpHeaders.setAll(headers); + return delete(url, httpHeaders, responseType, params); + } + + /** + * 带请求头的DELETE请求调用方式 + * + * @param url 请求URL + * @param headers 请求头参数 + * @param responseType 返回对象类型 + * @param params URL中的变量,与Map中的key对应 + * @return ResponseEntity 响应对象封装类 + */ + public static ResponseEntity delete(String url, HttpHeaders headers, Class responseType, Map params) { + HttpEntity requestEntity = new HttpEntity(headers); + return delete(url, requestEntity, responseType, params); + } + + /** + * 带请求头的DELETE请求调用方式 + * + * @param url 请求URL + * @param headers 请求头参数 + * @param requestBody 请求参数体 + * @param responseType 返回对象类型 + * @param params URL中的变量,按顺序依次对应 + * @return ResponseEntity 响应对象封装类 + */ + public static ResponseEntity delete(String url, Map headers, Object requestBody, Class responseType, Object... params) { + HttpHeaders httpHeaders = new HttpHeaders(); + httpHeaders.setAll(headers); + return delete(url, httpHeaders, requestBody, responseType, params); + } + + /** + * 带请求头的DELETE请求调用方式 + * + * @param url 请求URL + * @param headers 请求头参数 + * @param requestBody 请求参数体 + * @param responseType 返回对象类型 + * @param params URL中的变量,按顺序依次对应 + * @return ResponseEntity 响应对象封装类 + */ + public static ResponseEntity delete(String url, HttpHeaders headers, Object requestBody, Class responseType, Object... params) { + HttpEntity requestEntity = new HttpEntity(requestBody, headers); + return delete(url, requestEntity, responseType, params); + } + + /** + * 带请求头的DELETE请求调用方式 + * + * @param url 请求URL + * @param headers 请求头参数 + * @param requestBody 请求参数体 + * @param responseType 返回对象类型 + * @param params URL中的变量,与Map中的key对应 + * @return ResponseEntity 响应对象封装类 + */ + public static ResponseEntity delete(String url, Map headers, Object requestBody, Class responseType, Map params) { + HttpHeaders httpHeaders = new HttpHeaders(); + httpHeaders.setAll(headers); + return delete(url, httpHeaders, requestBody, responseType, params); + } + + /** + * 带请求头的DELETE请求调用方式 + * + * @param url 请求URL + * @param headers 请求头参数 + * @param requestBody 请求参数体 + * @param responseType 返回对象类型 + * @param params URL中的变量,与Map中的key对应 + * @return ResponseEntity 响应对象封装类 + */ + public static ResponseEntity delete(String url, HttpHeaders headers, Object requestBody, Class responseType, Map params) { + HttpEntity requestEntity = new HttpEntity(requestBody, headers); + return delete(url, requestEntity, responseType, params); + } + + /** + * 自定义请求头和请求体的DELETE请求调用方式 + * + * @param url 请求URL + * @param requestEntity 请求头和请求体封装对象 + * @param responseType 返回对象类型 + * @param params URL中的变量,按顺序依次对应 + * @return ResponseEntity 响应对象封装类 + */ + public static ResponseEntity delete(String url, HttpEntity requestEntity, Class responseType, Object... params) { + return restTemplate.exchange(url, HttpMethod.DELETE, requestEntity, responseType, params); + } + + /** + * 自定义请求头和请求体的DELETE请求调用方式 + * + * @param url 请求URL + * @param requestEntity 请求头和请求体封装对象 + * @param responseType 返回对象类型 + * @param params URL中的变量,与Map中的key对应 + * @return ResponseEntity 响应对象封装类 + */ + public static ResponseEntity delete(String url, HttpEntity requestEntity, Class responseType, Map params) { + return restTemplate.exchange(url, HttpMethod.DELETE, requestEntity, responseType, params); + } + + // ----------------------------------通用方法------------------------------------------------------- + + /** + * 通用调用方式 + * + * @param url 请求URL + * @param method 请求方法类型 + * @param requestEntity 请求头和请求体封装对象 + * @param responseType 返回对象类型 + * @param params URL中的变量,按顺序依次对应 + * @return ResponseEntity 响应对象封装类 + */ + public static ResponseEntity exchange(String url, HttpMethod method, HttpEntity requestEntity, Class responseType, Object... params) { + return restTemplate.exchange(url, method, requestEntity, responseType, params); + } + + /** + * 通用调用方式 + * + * @param url 请求URL + * @param method 请求方法类型 + * @param requestEntity 请求头和请求体封装对象 + * @param responseType 返回对象类型 + * @param params URL中的变量,与Map中的key对应 + * @return ResponseEntity 响应对象封装类 + */ + public static ResponseEntity exchange(String url, HttpMethod method, HttpEntity requestEntity, Class responseType, Map params) { + return restTemplate.exchange(url, method, requestEntity, responseType, params); + } + + /** + * 获取RestTemplate实例对象,可自由调用其方法 + * + * @return RestTemplate实例对象 + */ + public static RestTemplate getRestTemplate() { + return restTemplate; + } + +} diff --git a/nxhs-service/src/main/resources/mapper/RecycleDevicePhotoMapper.xml b/nxhs-service/src/main/resources/mapper/RecycleDevicePhotoMapper.xml new file mode 100644 index 0000000..ae7b01c --- /dev/null +++ b/nxhs-service/src/main/resources/mapper/RecycleDevicePhotoMapper.xml @@ -0,0 +1,5 @@ + + + + +