diff --git a/ghy-admin/src/main/java/com/ghy/web/controller/worker/WorkerGoodsCategoryController.java b/ghy-admin/src/main/java/com/ghy/web/controller/worker/WorkerGoodsCategoryController.java new file mode 100644 index 00000000..7a46a015 --- /dev/null +++ b/ghy-admin/src/main/java/com/ghy/web/controller/worker/WorkerGoodsCategoryController.java @@ -0,0 +1,88 @@ +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.WorkerGoodsCategory; +import com.ghy.worker.request.WorkerGoodsCategorySaveRequest; +import com.ghy.worker.service.WorkerGoodsCategoryService; +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; + +/** + * 师傅服务类目Controller + * + * @author HH 2022/6/7 + */ +@Slf4j +@Controller +@RequestMapping("worker/goods/category") +public class WorkerGoodsCategoryController { + + @Resource + private WorkerGoodsCategoryService workerGoodsCategoryService; + + /** + * 查询某个师傅的所有服务类目 + * + * @param workerId 师傅ID + */ + @GetMapping("worker") + @ResponseBody + public AjaxResult getByWorker(Long workerId) { + return AjaxResult.success(workerGoodsCategoryService.getByWorker(workerId)); + } + + @PostMapping("save") + @ResponseBody + @Transactional(rollbackFor = Exception.class) + public AjaxResult save(@RequestBody WorkerGoodsCategorySaveRequest request) { + Set goodsCategoryIds = request.getGoodsCategoryIds(); + // 数据库中已存在的商品类目ID + Set existingId = workerGoodsCategoryService.getByWorker(request.getWorkerId()).stream() + .map(WorkerGoodsCategory::getGoodsCategoryId).collect(Collectors.toSet()); + goodsCategoryIds.removeIf(existingId::contains); + if (CollectionUtils.isEmpty(goodsCategoryIds)) { + // 如果去重后ID集合为空 则结束 + return AjaxResult.success(); + } + for (Long goodsCategoryId : existingId) { + WorkerGoodsCategory wgc = new WorkerGoodsCategory(); + wgc.setWorkerId(request.getWorkerId()); + wgc.setGoodsCategoryId(goodsCategoryId); + workerGoodsCategoryService.insert(wgc); + } + return AjaxResult.success(); + } + + /** + * 删除某个师傅的所有服务类目 + * + * @param workerId 师傅ID + */ + @DeleteMapping("worker") + @ResponseBody + public AjaxResult deleteByWorker(Long workerId) { + workerGoodsCategoryService.deleteByWorker(workerId); + return AjaxResult.success(); + } + + /** + * 通过主键删除 + * + * @param ids 师傅服务类目表主键 + */ + @DeleteMapping + @ResponseBody + public AjaxResult deleteByWorkerAreaId(String ids) { + Long[] idArray = Convert.toLongArray(ids); + workerGoodsCategoryService.delete(idArray); + return AjaxResult.success(); + } +} diff --git a/ghy-worker/src/main/java/com/ghy/worker/domain/WorkerGoodsCategory.java b/ghy-worker/src/main/java/com/ghy/worker/domain/WorkerGoodsCategory.java new file mode 100644 index 00000000..e619e320 --- /dev/null +++ b/ghy-worker/src/main/java/com/ghy/worker/domain/WorkerGoodsCategory.java @@ -0,0 +1,28 @@ +package com.ghy.worker.domain; + +import com.ghy.common.core.domain.BaseEntity; +import lombok.Data; + +/** + * 师傅服务类目 + * + * @author HH 2022/6/7 + */ +@Data +public class WorkerGoodsCategory extends BaseEntity { + + /** + * 主键 + */ + private Long workerGoodsCategoryId; + + /** + * 师傅主键 + */ + private Long workerId; + + /** + * 商品类目主键 + */ + private Long goodsCategoryId; +} diff --git a/ghy-worker/src/main/java/com/ghy/worker/mapper/WorkerGoodsCategoryMapper.java b/ghy-worker/src/main/java/com/ghy/worker/mapper/WorkerGoodsCategoryMapper.java new file mode 100644 index 00000000..a90d0176 --- /dev/null +++ b/ghy-worker/src/main/java/com/ghy/worker/mapper/WorkerGoodsCategoryMapper.java @@ -0,0 +1,21 @@ +package com.ghy.worker.mapper; + +import com.ghy.worker.domain.WorkerGoodsCategory; + +import java.util.List; + +/** + * 师傅服务类目Mapper + * + * @author HH 2022/6/7 + */ +public interface WorkerGoodsCategoryMapper { + + int insert(WorkerGoodsCategory workerGoodsCategory); + + int delete(Long[] ids); + + int deleteByWorker(Long workerId); + + List getByWorker(Long workerId); +} diff --git a/ghy-worker/src/main/java/com/ghy/worker/request/WorkerGoodsCategorySaveRequest.java b/ghy-worker/src/main/java/com/ghy/worker/request/WorkerGoodsCategorySaveRequest.java new file mode 100644 index 00000000..435d1587 --- /dev/null +++ b/ghy-worker/src/main/java/com/ghy/worker/request/WorkerGoodsCategorySaveRequest.java @@ -0,0 +1,24 @@ +package com.ghy.worker.request; + +import lombok.Data; + +import java.util.Set; + +/** + * 保存师傅接单区域接口参数 + * + * @author HH 2022/6/7 + */ +@Data +public class WorkerGoodsCategorySaveRequest { + + /** + * 师傅ID + */ + private Long workerId; + + /** + * 第3级商品类目ID + */ + private Set goodsCategoryIds; +} diff --git a/ghy-worker/src/main/java/com/ghy/worker/service/WorkerGoodsCategoryService.java b/ghy-worker/src/main/java/com/ghy/worker/service/WorkerGoodsCategoryService.java new file mode 100644 index 00000000..ba49e501 --- /dev/null +++ b/ghy-worker/src/main/java/com/ghy/worker/service/WorkerGoodsCategoryService.java @@ -0,0 +1,21 @@ +package com.ghy.worker.service; + +import com.ghy.worker.domain.WorkerGoodsCategory; + +import java.util.List; + +/** + * 师傅服务类目Service + * + * @author HH 2022/6/7 + */ +public interface WorkerGoodsCategoryService { + + int insert(WorkerGoodsCategory workerGoodsCategory); + + int delete(Long[] ids); + + int deleteByWorker(Long workerId); + + List getByWorker(Long workerId); +} diff --git a/ghy-worker/src/main/java/com/ghy/worker/service/impl/WorkerGoodsCategoryServiceImpl.java b/ghy-worker/src/main/java/com/ghy/worker/service/impl/WorkerGoodsCategoryServiceImpl.java new file mode 100644 index 00000000..24583353 --- /dev/null +++ b/ghy-worker/src/main/java/com/ghy/worker/service/impl/WorkerGoodsCategoryServiceImpl.java @@ -0,0 +1,41 @@ +package com.ghy.worker.service.impl; + +import com.ghy.worker.domain.WorkerGoodsCategory; +import com.ghy.worker.mapper.WorkerGoodsCategoryMapper; +import com.ghy.worker.service.WorkerGoodsCategoryService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; + +/** + * 师傅服务类目Service + * + * @author HH 2022/6/7 + */ +@Service +public class WorkerGoodsCategoryServiceImpl implements WorkerGoodsCategoryService { + + @Resource + private WorkerGoodsCategoryMapper workerGoodsCategoryMapper; + + @Override + public int insert(WorkerGoodsCategory workerGoodsCategory) { + return workerGoodsCategoryMapper.insert(workerGoodsCategory); + } + + @Override + public int delete(Long[] ids) { + return workerGoodsCategoryMapper.delete(ids); + } + + @Override + public int deleteByWorker(Long workerId) { + return workerGoodsCategoryMapper.deleteByWorker(workerId); + } + + @Override + public List getByWorker(Long workerId) { + return workerGoodsCategoryMapper.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 b24dca3c..f823df0f 100644 --- a/ghy-worker/src/main/resources/mapper/worker/WorkerAreaMapper.xml +++ b/ghy-worker/src/main/resources/mapper/worker/WorkerAreaMapper.xml @@ -8,6 +8,7 @@ + @@ -21,6 +22,7 @@ province_id, city_id, district_id, + street_id, create_by, remark, create_time @@ -29,6 +31,7 @@ #{provinceId}, #{cityId}, #{districtId}, + #{streetId}, #{createBy}, #{remark}, sysdate() diff --git a/ghy-worker/src/main/resources/mapper/worker/WorkerGoodsCategoryMapper.xml b/ghy-worker/src/main/resources/mapper/worker/WorkerGoodsCategoryMapper.xml new file mode 100644 index 00000000..485515d9 --- /dev/null +++ b/ghy-worker/src/main/resources/mapper/worker/WorkerGoodsCategoryMapper.xml @@ -0,0 +1,47 @@ + + + + + + + + + + + + + + + + + INSERT INTO worker_goods_category( + worker_id, + goods_category_id, + create_by, + remark, + create_time + )VALUES( + #{workerId}, + #{goodsCategoryId}, + #{createBy}, + #{remark}, + sysdate() + ) + + + + + + DELETE FROM worker_goods_category WHERE worker_id = #{workerId} + + + + DELETE FROM worker_goods_category WHERE worker_goods_category_id IN + + #{id} + + + +