店铺(即师傅-商品)详情的查询接口

This commit is contained in:
donqi 2022-06-27 10:24:48 +08:00
parent 6a92f40b51
commit 7f907a3863
2 changed files with 67 additions and 32 deletions

View File

@ -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<WorkerListResponse> resList = new ArrayList<WorkerListResponse>();
// 查询满足区域条件的师傅区域记录
WorkerArea workerArea = new WorkerArea();
workerArea.setDistrictId(workerListRequest.getAreaId());
List<WorkerArea> workerAreaList = workerAreaService.getWorkerAreaList(workerArea);
List<Long> workerIdsByArea = workerAreaList.stream().map(WorkerArea::getWorkerId).collect(Collectors.toList());
// 查询满足技能条件的师傅技能记录
WorkerGoodsCategory workerGoodsCategory = new WorkerGoodsCategory();
workerGoodsCategory.setGoodsCategoryId(workerListRequest.getGoodsCategoryId());
List<WorkerGoodsCategory> workerGoodsCategoryList = workerGoodsCategoryService.getWorkerGoodsCategory(workerGoodsCategory);
List<Long> workerIdsByCategory = workerGoodsCategoryList.stream().map(WorkerGoodsCategory::getWorkerId).collect(Collectors.toList());
// 两个list中的workerid取交集
List<Long> resWorkerIds = new ArrayList<>(CollectionUtils.intersection(workerIdsByArea, workerIdsByCategory));
try {
// 查询满足区域条件的师傅区域记录
WorkerArea workerArea = new WorkerArea();
workerArea.setDistrictId(workerListRequest.getAreaId());
List<WorkerArea> workerAreaList = workerAreaService.getWorkerAreaList(workerArea);
List<Long> workerIdsByArea = workerAreaList.stream().map(WorkerArea::getWorkerId).collect(Collectors.toList());
// 查询满足技能条件的师傅技能记录
WorkerGoodsCategory workerGoodsCategory = new WorkerGoodsCategory();
workerGoodsCategory.setGoodsCategoryId(workerListRequest.getGoodsCategoryId());
List<WorkerGoodsCategory> workerGoodsCategoryList = workerGoodsCategoryService.getWorkerGoodsCategory(workerGoodsCategory);
List<Long> workerIdsByCategory = workerGoodsCategoryList.stream().map(WorkerGoodsCategory::getWorkerId).collect(Collectors.toList());
// 两个list中的workerid取交集
List<Long> 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<Worker> 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<Worker> 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){

View File

@ -14,4 +14,6 @@ public class WorkerListRequest {
private Long goodsCategoryId;
private String workerName;
private Long workerId;
}