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 77fe856a..73d6a59a 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 @@ -22,6 +22,7 @@ import com.ghy.worker.service.WorkerService; import com.ghy.worker.service.WorkerSpecialSkillService; import org.apache.commons.collections.CollectionUtils; import org.apache.shiro.authz.annotation.RequiresPermissions; +import org.apache.shiro.util.Assert; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.transaction.annotation.Transactional; @@ -69,44 +70,76 @@ public class WorkerController extends BaseController { { List resList = new ArrayList(); - // 查询满足区域条件的师傅区域记录 - WorkerArea workerArea = new WorkerArea(); - workerArea.setDistrictId(workerListRequest.getAreaId()); - List workerAreaList = workerAreaService.getWorkerAreaList(workerArea); - List workerIdsByArea = workerAreaList.stream().map(WorkerArea::getWorkerId).collect(Collectors.toList()); - // 查询满足技能条件的师傅技能记录 - WorkerGoodsCategory workerGoodsCategory = new WorkerGoodsCategory(); - workerGoodsCategory.setGoodsCategoryId(workerListRequest.getGoodsCategoryId()); - List workerGoodsCategoryList = workerGoodsCategoryService.getWorkerGoodsCategory(workerGoodsCategory); - List workerIdsByCategory = workerGoodsCategoryList.stream().map(WorkerGoodsCategory::getWorkerId).collect(Collectors.toList()); - // 两个list中的workerid取交集 - List resWorkerIds = new ArrayList<>(CollectionUtils.intersection(workerIdsByArea, workerIdsByCategory)); + try { + // 查询满足区域条件的师傅区域记录 + WorkerArea workerArea = new WorkerArea(); + workerArea.setDistrictId(workerListRequest.getAreaId()); + List workerAreaList = workerAreaService.getWorkerAreaList(workerArea); + List workerIdsByArea = workerAreaList.stream().map(WorkerArea::getWorkerId).collect(Collectors.toList()); + // 查询满足技能条件的师傅技能记录 + WorkerGoodsCategory workerGoodsCategory = new WorkerGoodsCategory(); + workerGoodsCategory.setGoodsCategoryId(workerListRequest.getGoodsCategoryId()); + List workerGoodsCategoryList = workerGoodsCategoryService.getWorkerGoodsCategory(workerGoodsCategory); + List workerIdsByCategory = workerGoodsCategoryList.stream().map(WorkerGoodsCategory::getWorkerId).collect(Collectors.toList()); + // 两个list中的workerid取交集 + List resWorkerIds = new ArrayList<>(CollectionUtils.intersection(workerIdsByArea, workerIdsByCategory)); - if (CollectionUtils.isEmpty(resWorkerIds)) { - // 交集不存在的情况直接返回空list - return getDataTable(resList); + if (CollectionUtils.isEmpty(resWorkerIds)) { + // 交集不存在的情况直接返回空list + return getDataTable(resList); + } + + startPage(); + Worker worker = new Worker(); + worker.setWorkerIds(CollectionUtils.isNotEmpty(resWorkerIds) ? resWorkerIds : null); + worker.setName(workerListRequest.getWorkerName()); + List list = workerService.getWorkList(worker); + list.forEach(w -> { + Goods goods = new Goods(); + goods.setWorkerId(w.getWorkerId()); + goods.setStatus(Integer.valueOf(GoodsStatus.OK.getCode())); + WorkerListResponse workerListResponse = JSONObject.parseObject(JSON.toJSONString(w), WorkerListResponse.class); + workerListResponse.setGoodsList(goodsService.selectGoodsList(goods)); + workerListResponse.setWorkerAreas(workerAreaService.getByWorker(w.getWorkerId())); + workerListResponse.setGoodsCategories(workerGoodsCategoryService.getByWorker(w.getWorkerId())); + workerListResponse.setSpecialSkills(specialSkillService.getByWorker(w.getWorkerId())); + resList.add(workerListResponse); + }); + } catch (Exception e) { + e.printStackTrace(); + logger.error(ExceptionUtil.getExceptionMessage(e)); } - startPage(); - Worker worker = new Worker(); - worker.setWorkerIds(CollectionUtils.isNotEmpty(resWorkerIds) ? resWorkerIds : null); - worker.setName(workerListRequest.getWorkerName()); - List list = workerService.getWorkList(worker); - list.forEach(w -> { - Goods goods = new Goods(); - goods.setWorkerId(w.getWorkerId()); - goods.setStatus(Integer.valueOf(GoodsStatus.OK.getCode())); - WorkerListResponse workerListResponse = JSONObject.parseObject(JSON.toJSONString(w), WorkerListResponse.class); - workerListResponse.setGoodsList(goodsService.selectGoodsList(goods)); - workerListResponse.setWorkerAreas(workerAreaService.getByWorker(w.getWorkerId())); - workerListResponse.setGoodsCategories(workerGoodsCategoryService.getByWorker(w.getWorkerId())); - workerListResponse.setSpecialSkills(specialSkillService.getByWorker(w.getWorkerId())); - resList.add(workerListResponse); - }); - return getDataTable(resList); } + @PostMapping("/getDetailById") + @ResponseBody + public AjaxResult getDetailById(@RequestBody WorkerListRequest workerListRequest) + { + WorkerListResponse workerListResponse = new WorkerListResponse(); + + try { + Assert.notNull(workerListRequest.getWorkerId(), "Worker id can not be null"); + + Worker worker = workerService.selectById(workerListRequest.getWorkerId()); + Goods goods = new Goods(); + goods.setWorkerId(workerListRequest.getWorkerId()); + goods.setStatus(Integer.valueOf(GoodsStatus.OK.getCode())); + workerListResponse = JSONObject.parseObject(JSON.toJSONString(worker), WorkerListResponse.class); + workerListResponse.setGoodsList(goodsService.selectGoodsList(goods)); + workerListResponse.setWorkerAreas(workerAreaService.getByWorker(worker.getWorkerId())); + workerListResponse.setGoodsCategories(workerGoodsCategoryService.getByWorker(worker.getWorkerId())); + workerListResponse.setSpecialSkills(specialSkillService.getByWorker(worker.getWorkerId())); + } catch (Exception e) { + e.printStackTrace(); + logger.error(ExceptionUtil.getExceptionMessage(e)); + return AjaxResult.error(e.getMessage()); + } + + return AjaxResult.success(workerListResponse); + } + @PostMapping("/update") @ResponseBody public AjaxResult updateWorker(@RequestBody Worker worker){ diff --git a/ghy-admin/src/main/java/com/ghy/web/pojo/vo/WorkerListRequest.java b/ghy-admin/src/main/java/com/ghy/web/pojo/vo/WorkerListRequest.java index cfa76480..5f63c61c 100644 --- a/ghy-admin/src/main/java/com/ghy/web/pojo/vo/WorkerListRequest.java +++ b/ghy-admin/src/main/java/com/ghy/web/pojo/vo/WorkerListRequest.java @@ -14,4 +14,6 @@ public class WorkerListRequest { private Long goodsCategoryId; private String workerName; + + private Long workerId; }