From d2ed20b04de3c359cd26de87789fda086ccd67d5 Mon Sep 17 00:00:00 2001 From: HH Date: Tue, 7 Jun 2022 16:00:45 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B8=88=E5=82=85=E6=8E=A5=E5=8D=95=E5=8C=BA?= =?UTF-8?q?=E5=9F=9F=20Controller?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../worker/WorkerAreaController.java | 87 +++++++++++++++++++ .../com/ghy/worker/domain/WorkerArea.java | 4 +- .../ghy/worker/mapper/WorkerAreaMapper.java | 6 +- .../worker/request/WorkerAreaSaveRequest.java | 25 ++++++ .../ghy/worker/service/WorkerAreaService.java | 6 +- .../service/impl/WorkerAreaServiceImpl.java | 7 +- .../mapper/worker/WorkerAreaMapper.xml | 5 +- 7 files changed, 131 insertions(+), 9 deletions(-) create mode 100644 ghy-admin/src/main/java/com/ghy/web/controller/worker/WorkerAreaController.java create mode 100644 ghy-worker/src/main/java/com/ghy/worker/request/WorkerAreaSaveRequest.java diff --git a/ghy-admin/src/main/java/com/ghy/web/controller/worker/WorkerAreaController.java b/ghy-admin/src/main/java/com/ghy/web/controller/worker/WorkerAreaController.java new file mode 100644 index 00000000..f7dd8331 --- /dev/null +++ b/ghy-admin/src/main/java/com/ghy/web/controller/worker/WorkerAreaController.java @@ -0,0 +1,87 @@ +package com.ghy.web.controller.worker; + +import com.ghy.common.core.domain.AjaxResult; +import com.ghy.common.core.text.Convert; +import com.ghy.worker.domain.WorkerArea; +import com.ghy.worker.request.WorkerAreaSaveRequest; +import com.ghy.worker.service.WorkerAreaService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Controller; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.CollectionUtils; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.util.Set; +import java.util.stream.Collectors; + +/** + * 师傅接单区域 + * + * @author HH 2022/6/7 + */ +@Slf4j +@Controller +@RequestMapping("worker/area") +public class WorkerAreaController { + + @Resource + private WorkerAreaService workerAreaService; + + /** + * 查询某个师傅的所有接单地区 + * + * @param workerId 师傅ID + */ + @GetMapping("worker") + @ResponseBody + public AjaxResult getByWorker(Long workerId) { + return AjaxResult.success(workerAreaService.getByWorker(workerId)); + } + + @PostMapping("save") + @ResponseBody + @Transactional(rollbackFor = Exception.class) + public AjaxResult save(@RequestBody WorkerAreaSaveRequest request) { + Set areas = request.getAreas(); + // 数据库中已存在的街道ID + Set existingArea = workerAreaService.getByWorker(request.getWorkerId()).stream() + .map(WorkerArea::getStreetId).collect(Collectors.toSet()); + // 去掉重复 + areas.removeIf(x -> existingArea.contains(x.getStreetId())); + if (CollectionUtils.isEmpty(areas)) { + // 如果去重后ID集合为空 则结束 + return AjaxResult.success(); + } + for (WorkerArea area : areas) { + area.setWorkerId(request.getWorkerId()); + workerAreaService.insert(area); + } + return AjaxResult.success(); + } + + /** + * 删除某个师傅的所有接单地区 + * + * @param workerId 师傅ID + */ + @DeleteMapping("worker") + @ResponseBody + public AjaxResult deleteByWorker(Long workerId) { + workerAreaService.deleteByWorker(workerId); + return AjaxResult.success(); + } + + /** + * 通过主键删除 + * + * @param ids 接单地区表主键 + */ + @DeleteMapping + @ResponseBody + public AjaxResult deleteByWorkerAreaId(String ids) { + Long[] idArray = Convert.toLongArray(ids); + workerAreaService.delete(idArray); + return AjaxResult.success(); + } +} diff --git a/ghy-worker/src/main/java/com/ghy/worker/domain/WorkerArea.java b/ghy-worker/src/main/java/com/ghy/worker/domain/WorkerArea.java index ccaaaa94..70780d66 100644 --- a/ghy-worker/src/main/java/com/ghy/worker/domain/WorkerArea.java +++ b/ghy-worker/src/main/java/com/ghy/worker/domain/WorkerArea.java @@ -23,8 +23,10 @@ public class WorkerArea extends BaseEntity { @Excel(name = "市区域id", cellType = Excel.ColumnType.NUMERIC) private Long cityId; - @Excel(name = "区县区域id", cellType = Excel.ColumnType.NUMERIC) + @Excel(name = "区/县区域id", cellType = Excel.ColumnType.NUMERIC) private Long districtId; + @Excel(name = "街道区域id", cellType = Excel.ColumnType.NUMERIC) + private Long streetId; } diff --git a/ghy-worker/src/main/java/com/ghy/worker/mapper/WorkerAreaMapper.java b/ghy-worker/src/main/java/com/ghy/worker/mapper/WorkerAreaMapper.java index c6d197b0..674e771e 100644 --- a/ghy-worker/src/main/java/com/ghy/worker/mapper/WorkerAreaMapper.java +++ b/ghy-worker/src/main/java/com/ghy/worker/mapper/WorkerAreaMapper.java @@ -2,6 +2,8 @@ package com.ghy.worker.mapper; import com.ghy.worker.domain.WorkerArea; +import java.util.List; + /** * 师父接单区域 * @@ -11,9 +13,9 @@ public interface WorkerAreaMapper { int insert(WorkerArea workerArea); - int delete(Long workerAreaId); + int delete(Long[] ids); int deleteByWorker(Long workerId); - WorkerArea getByWorker(Long workerId); + List getByWorker(Long workerId); } diff --git a/ghy-worker/src/main/java/com/ghy/worker/request/WorkerAreaSaveRequest.java b/ghy-worker/src/main/java/com/ghy/worker/request/WorkerAreaSaveRequest.java new file mode 100644 index 00000000..95460d76 --- /dev/null +++ b/ghy-worker/src/main/java/com/ghy/worker/request/WorkerAreaSaveRequest.java @@ -0,0 +1,25 @@ +package com.ghy.worker.request; + +import com.ghy.worker.domain.WorkerArea; +import lombok.Data; + +import java.util.Set; + +/** + * 保存师傅接单区域接口参数 + * + * @author HH 2022/6/7 + */ +@Data +public class WorkerAreaSaveRequest { + + /** + * 师傅ID + */ + private Long workerId; + + /** + * 第4级(level_type=4)地区 + */ + private Set areas; +} diff --git a/ghy-worker/src/main/java/com/ghy/worker/service/WorkerAreaService.java b/ghy-worker/src/main/java/com/ghy/worker/service/WorkerAreaService.java index d07189bc..ad46cb23 100644 --- a/ghy-worker/src/main/java/com/ghy/worker/service/WorkerAreaService.java +++ b/ghy-worker/src/main/java/com/ghy/worker/service/WorkerAreaService.java @@ -2,6 +2,8 @@ package com.ghy.worker.service; import com.ghy.worker.domain.WorkerArea; +import java.util.List; + /** * 师父接单区域 * @@ -11,9 +13,9 @@ public interface WorkerAreaService { int insert(WorkerArea workerArea); - int delete(Long workerAreaId); + int delete(Long[] ids); int deleteByWorker(Long workerId); - WorkerArea getByWorker(Long workerId); + List getByWorker(Long workerId); } diff --git a/ghy-worker/src/main/java/com/ghy/worker/service/impl/WorkerAreaServiceImpl.java b/ghy-worker/src/main/java/com/ghy/worker/service/impl/WorkerAreaServiceImpl.java index 1ab22823..eb0fee2c 100644 --- a/ghy-worker/src/main/java/com/ghy/worker/service/impl/WorkerAreaServiceImpl.java +++ b/ghy-worker/src/main/java/com/ghy/worker/service/impl/WorkerAreaServiceImpl.java @@ -6,6 +6,7 @@ import com.ghy.worker.service.WorkerAreaService; import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.util.List; @Service public class WorkerAreaServiceImpl implements WorkerAreaService { @@ -19,8 +20,8 @@ public class WorkerAreaServiceImpl implements WorkerAreaService { } @Override - public int delete(Long workerAreaId) { - return workerAreaMapper.delete(workerAreaId); + public int delete(Long[] ids) { + return workerAreaMapper.delete(ids); } @Override @@ -29,7 +30,7 @@ public class WorkerAreaServiceImpl implements WorkerAreaService { } @Override - public WorkerArea getByWorker(Long workerId) { + public List getByWorker(Long workerId) { return workerAreaMapper.getByWorker(workerId); } } diff --git a/ghy-worker/src/main/resources/mapper/worker/WorkerAreaMapper.xml b/ghy-worker/src/main/resources/mapper/worker/WorkerAreaMapper.xml index 1c323ad4..b24dca3c 100644 --- a/ghy-worker/src/main/resources/mapper/worker/WorkerAreaMapper.xml +++ b/ghy-worker/src/main/resources/mapper/worker/WorkerAreaMapper.xml @@ -44,7 +44,10 @@ - DELETE FROM worker_area WHERE worker_area_id = #{workerAreaId} + DELETE FROM worker_area WHERE worker_area_id IN + + #{areaId} +