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 index 4cdede6d..c26bae9f 100644 --- 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 @@ -57,11 +57,40 @@ public class WorkerAreaController extends BaseController { * 查询某个师傅的所有接单地区 * * @param workerId 师傅ID + * @param serviceType 服务类型:1=服务, 2=商品,不传则查询所有 */ @GetMapping("worker") @ResponseBody - public AjaxResult getByWorker(Long workerId) { - return AjaxResult.success(workerAreaService.getByWorker(workerId)); + public AjaxResult getByWorker(Long workerId, Integer serviceType) { + if (serviceType != null) { + // 根据服务类型查询 + return AjaxResult.success(workerAreaService.getByWorkerIdAndType(workerId, serviceType)); + } else { + // 查询所有区域(保持向后兼容) + return AjaxResult.success(workerAreaService.getByWorker(workerId)); + } + } + + /** + * 查询某个师傅的服务区域(类型1) + * + * @param workerId 师傅ID + */ + @GetMapping("worker/service") + @ResponseBody + public AjaxResult getServiceAreasByWorker(Long workerId) { + return AjaxResult.success(workerAreaService.getByWorkerIdAndType(workerId, 1)); + } + + /** + * 查询某个师傅的商品区域(类型2) + * + * @param workerId 师傅ID + */ + @GetMapping("worker/goods") + @ResponseBody + public AjaxResult getGoodsAreasByWorker(Long workerId) { + return AjaxResult.success(workerAreaService.getByWorkerIdAndType(workerId, 2)); } @GetMapping("worker/edit") diff --git a/ghy-admin/src/main/java/com/ghy/web/controller/worker/WorkerController.java b/ghy-admin/src/main/java/com/ghy/web/controller/worker/WorkerController.java index 03aa6c03..bac480fd 100644 --- a/ghy-admin/src/main/java/com/ghy/web/controller/worker/WorkerController.java +++ b/ghy-admin/src/main/java/com/ghy/web/controller/worker/WorkerController.java @@ -415,15 +415,21 @@ public class WorkerController extends BaseController { @ResponseBody @Transactional(rollbackFor = Exception.class) public AjaxResult settled(@RequestBody WorkerSettledRequest request) { - // 入驻区域信息持久化 - workerAreaService.updateWorkerServArea(request.getWorkerId(), request.getWorkerAreas()); + // 入驻服务区域信息持久化(类型1) + workerAreaService.updateWorkerAreaByType(request.getWorkerId(), request.getWorkerAreas(), 1); + + // 入驻商品区域信息持久化(类型2) + workerAreaService.updateWorkerAreaByType(request.getWorkerId(), request.getWorkerGoodsAreas(), 2); + // 入驻服务品类信息持久化 workerGoodsCategoryService.updateWorkerGoodsCategory(request.getWorkerId(), request.getGoodsCategories()); + // 更新师傅入驻类型为服务商 Worker worker = new Worker(); worker.setWorkerId(request.getWorkerId()); worker.setType(WorkerType.SP.getCode()); workerService.updateWorker(worker); + return AjaxResult.success("保存成功"); } } diff --git a/ghy-admin/src/main/java/com/ghy/web/pojo/vo/WorkerSettledRequest.java b/ghy-admin/src/main/java/com/ghy/web/pojo/vo/WorkerSettledRequest.java index 43d864d4..e2f81440 100644 --- a/ghy-admin/src/main/java/com/ghy/web/pojo/vo/WorkerSettledRequest.java +++ b/ghy-admin/src/main/java/com/ghy/web/pojo/vo/WorkerSettledRequest.java @@ -21,6 +21,9 @@ public class WorkerSettledRequest { // 入驻区域 private List workerAreas; + // 入驻商品区域 + private List workerGoodsAreas; + // 服务品类 private List goodsCategories; 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 47f03752..b24ce6d3 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 @@ -42,4 +42,9 @@ public class WorkerArea extends BaseEntity { private List streetIds; private String mergerName; + + /** + * 服务类型:1=服务, 2=商品 + */ + private Integer serviceType; } 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 b56e054a..5320e44a 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 @@ -22,5 +22,15 @@ public interface WorkerAreaMapper { List getByWorker(Long workerId); + /** + * 根据师傅ID和服务类型删除区域 + */ + int deleteByWorkerIdAndType(@Param("workerId") Long workerId, @Param("serviceType") Integer serviceType); + + /** + * 根据师傅ID和服务类型查询区域 + */ + List getByWorkerIdAndType(@Param("workerId") Long workerId, @Param("serviceType") Integer serviceType); + List getWorkerAreaList(WorkerArea workerArea); } 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 c5437205..5e418c8f 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 @@ -21,5 +21,21 @@ public interface WorkerAreaService { void updateWorkerServArea(Long workerId, List areas); + /** + * 根据服务类型更新师傅区域 + * @param workerId 师傅ID + * @param areas 区域列表 + * @param serviceType 服务类型:1=服务, 2=商品 + */ + void updateWorkerAreaByType(Long workerId, List areas, Integer serviceType); + + /** + * 根据师傅ID和服务类型查询区域 + * @param workerId 师傅ID + * @param serviceType 服务类型:1=服务, 2=商品 + * @return 区域列表 + */ + List getByWorkerIdAndType(Long workerId, Integer serviceType); + List getWorkerAreaList(WorkerArea area); } 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 e65e7c8d..8b88c402 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 @@ -60,6 +60,28 @@ public class WorkerAreaServiceImpl implements WorkerAreaService { } } + @Override + public void updateWorkerAreaByType(Long workerId, List areas, Integer serviceType) { + if (areas == null || areas.isEmpty()) { + return; + } + + // 先删除该师傅该类型的旧区域 + workerAreaMapper.deleteByWorkerIdAndType(workerId, serviceType); + + // 插入新的区域,并设置类型 + for (WorkerArea area : areas) { + area.setWorkerId(workerId); + area.setServiceType(serviceType); // 设置类型:1=服务, 2=商品 + workerAreaMapper.insert(area); + } + } + + @Override + public List getByWorkerIdAndType(Long workerId, Integer serviceType) { + return workerAreaMapper.getByWorkerIdAndType(workerId, serviceType); + } + @Override public List getWorkerAreaList(WorkerArea area) { return workerAreaMapper.getWorkerAreaList(area); diff --git a/ghy-worker/src/main/resources/mapper/worker/WorkerAreaMapper.xml b/ghy-worker/src/main/resources/mapper/worker/WorkerAreaMapper.xml index d23366ee..deb0fe78 100644 --- a/ghy-worker/src/main/resources/mapper/worker/WorkerAreaMapper.xml +++ b/ghy-worker/src/main/resources/mapper/worker/WorkerAreaMapper.xml @@ -15,11 +15,12 @@ + SELECT wa.worker_area_id, wa.worker_id, wa.province_id, wa.city_id, wa.district_id, wa.street_id, wa.create_by, wa.create_time, - wa.update_by, wa.update_time, wa.remark, sa.area_name, sa.merger_name + wa.update_by, wa.update_time, wa.remark, wa.service_type, sa.area_name, sa.merger_name FROM worker_area wa LEFT JOIN sys_area sa on wa.street_id = sa.area_id @@ -31,6 +32,7 @@ city_id, district_id, street_id, + service_type, create_by, remark, create_time @@ -40,6 +42,7 @@ #{cityId}, #{districtId}, #{streetId}, + #{serviceType}, #{createBy}, #{remark}, sysdate() @@ -47,11 +50,11 @@ - INSERT INTO worker_area ( worker_id, province_id, city_id, district_id, street_id, create_by, create_time) + INSERT INTO worker_area ( worker_id, province_id, city_id, district_id, street_id, service_type, create_by, create_time) VALUES (#{workerArea.workerId}, #{workerArea.provinceId}, #{workerArea.cityId}, #{workerArea.districtId}, - #{workerArea.streetId}, #{workerArea.workerId}, sysdate()) + #{workerArea.streetId}, #{workerArea.serviceType}, #{workerArea.workerId}, sysdate()) @@ -60,6 +63,11 @@ WHERE wa.worker_id = #{workerId} + +