From 740a19a56521be0b6e5db09b5bd1814ec7a8fe63 Mon Sep 17 00:00:00 2001 From: donqi Date: Wed, 15 Jun 2022 15:12:13 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B8=88=E5=82=85=E5=85=A5=E9=A9=BB=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=E5=BC=80=E5=8F=91=EF=BC=8C=E5=B8=88=E5=82=85detail?= =?UTF-8?q?=E8=AE=A2=E5=8D=95=E4=BF=AE=E6=94=B9=E6=8E=A5=E5=8F=A3=E5=BC=80?= =?UTF-8?q?=E5=8F=91=EF=BC=8Cdetail=E5=8D=95=E5=88=97=E8=A1=A8=E6=9F=A5?= =?UTF-8?q?=E8=AF=A2=E6=8E=A5=E5=8F=A3=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../order/OrderDetailController.java | 18 ++++++++-- .../controller/worker/WorkerController.java | 35 +++++++++++++++++++ .../ghy/web/pojo/vo/OrderListResponse.java | 4 +++ .../ghy/web/pojo/vo/WorkerSettledRequest.java | 29 +++++++++++++++ .../ghy/worker/mapper/WorkerAreaMapper.java | 3 ++ .../mapper/WorkerGoodsCategoryMapper.java | 3 ++ .../mapper/WorkerSpecialSkillMapper.java | 3 ++ .../ghy/worker/service/WorkerAreaService.java | 2 ++ .../service/WorkerGoodsCategoryService.java | 2 ++ .../service/WorkerSpecialSkillService.java | 1 + .../service/impl/WorkerAreaServiceImpl.java | 26 ++++++++++++++ .../impl/WorkerGoodsCategoryServiceImpl.java | 29 +++++++++++++++ .../impl/WorkerSpecialSkillServiceImpl.java | 6 ++++ .../mapper/worker/WorkerAreaMapper.xml | 9 +++++ .../worker/WorkerGoodsCategoryMapper.xml | 8 +++++ .../worker/WorkerSpecialSkillMapper.xml | 10 ++++++ 16 files changed, 186 insertions(+), 2 deletions(-) create mode 100644 ghy-admin/src/main/java/com/ghy/web/pojo/vo/WorkerSettledRequest.java diff --git a/ghy-admin/src/main/java/com/ghy/web/controller/order/OrderDetailController.java b/ghy-admin/src/main/java/com/ghy/web/controller/order/OrderDetailController.java index 8be9f4ce..67455cb6 100644 --- a/ghy-admin/src/main/java/com/ghy/web/controller/order/OrderDetailController.java +++ b/ghy-admin/src/main/java/com/ghy/web/controller/order/OrderDetailController.java @@ -127,7 +127,10 @@ public class OrderDetailController extends BaseController { } // 编辑返回属性 - orderListResponse.setOrderMasterId(detail.getId()); + orderListResponse.setOrderDetailId(detail.getId()); + orderListResponse.setOrderDetailCode(detail.getCode()); + orderListResponse.setOrderMasterId(detail.getOrderMasterId()); + orderListResponse.setOrderMasterCode(detail.getOrderMasterCode()); orderListResponse.setGoodsName(goods.getGoodsName()); orderListResponse.setGoodsLogoUrl(goods.getGoodsImgUrl()); orderListResponse.setDiscountMoney(financialDetail.getDiscountMoney()); @@ -141,7 +144,6 @@ public class OrderDetailController extends BaseController { orderListResponse.setOrderStatus(detail.getOrderStatus()); orderListResponse.setPayStatus(orderMaster.getPayStatus()); orderListResponse.setPayType(orderMaster.getPayType()); - orderListResponse.setOrderMasterCode(detail.getCode()); orderListResponse.setStandardList(standardList); orderListResponse.setAddress(customerAddress.getAddress()); orderListResponse.setServerTime(detail.getRevTime()); @@ -198,6 +200,18 @@ public class OrderDetailController extends BaseController { return toAjax(orderDetailService.updateOrderDetail(orderDetail)); } + /** + * 修改保存详细订单 + */ + @PostMapping("/app/edit") + @ResponseBody + public AjaxResult appEdit(@RequestBody OrderDetail orderDetail) { + if (UserConstants.ORDER_CODE_NOT_UNIQUE.equals(orderDetailService.checkOrderDetailCodeUnique(orderDetail))) { + return error("修改详细订单'" + orderDetail.getCode() + "'失败,详细订单编码已存在"); + } + return toAjax(orderDetailService.updateOrderDetail(orderDetail)); + } + /** * 校验详细订单编码 */ 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 bc827753..9d095df6 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 @@ -4,13 +4,21 @@ import com.ghy.common.core.controller.BaseController; import com.ghy.common.core.domain.AjaxResult; import com.ghy.common.core.page.TableDataInfo; import com.ghy.common.utils.ExceptionUtil; +import com.ghy.common.utils.StringUtils; +import com.ghy.web.pojo.vo.WorkerSettledRequest; import com.ghy.worker.domain.Worker; +import com.ghy.worker.service.WorkerAreaService; +import com.ghy.worker.service.WorkerGoodsCategoryService; import com.ghy.worker.service.WorkerService; +import com.ghy.worker.service.WorkerSpecialSkillService; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.Assert; import org.springframework.web.bind.annotation.*; +import java.lang.reflect.Field; import java.util.List; /** @@ -26,6 +34,15 @@ public class WorkerController extends BaseController { @Autowired private WorkerService workerService; + @Autowired + private WorkerAreaService workerAreaService; + + @Autowired + private WorkerGoodsCategoryService workerGoodsCategoryService; + + @Autowired + private WorkerSpecialSkillService specialSkillService; + @RequiresPermissions("worker:worker:view") @GetMapping() public String worker(){ @@ -54,4 +71,22 @@ public class WorkerController extends BaseController { } } + @PostMapping("/settled") + @ResponseBody + @Transactional(rollbackFor = Exception.class) + public AjaxResult settled(@RequestBody WorkerSettledRequest request) { + try { + // TODO:参数校验 + // 入驻区域信息持久化 + workerAreaService.updateWorkerServArea(request.getWorkerId(), request.getWorkerAreas()); + // 入驻服务品类信息持久化 + workerGoodsCategoryService.updateWorkerGoodsCategory(request.getWorkerId(), request.getGoodsCategories()); + // 入驻特殊技能信息持久化 + specialSkillService.updateWorkerSpecialSkill(request.getWorkerId(), request.getSpecialSkills()); + return AjaxResult.success("保存成功"); + } catch (Exception e) { + logger.error(ExceptionUtil.getExceptionMessage(e)); + return AjaxResult.error(e.getMessage()); + } + } } diff --git a/ghy-admin/src/main/java/com/ghy/web/pojo/vo/OrderListResponse.java b/ghy-admin/src/main/java/com/ghy/web/pojo/vo/OrderListResponse.java index 067e70dc..8d7d4e7f 100644 --- a/ghy-admin/src/main/java/com/ghy/web/pojo/vo/OrderListResponse.java +++ b/ghy-admin/src/main/java/com/ghy/web/pojo/vo/OrderListResponse.java @@ -14,6 +14,10 @@ public class OrderListResponse { private String orderMasterCode; + private Long orderDetailId; + + private String orderDetailCode; + private String workerName; private String workerPhone; 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 new file mode 100644 index 00000000..e673995d --- /dev/null +++ b/ghy-admin/src/main/java/com/ghy/web/pojo/vo/WorkerSettledRequest.java @@ -0,0 +1,29 @@ +package com.ghy.web.pojo.vo; + +import com.ghy.worker.domain.WorkerArea; +import com.ghy.worker.domain.WorkerGoodsCategory; +import com.ghy.worker.domain.WorkerSpecialSkill; +import lombok.Data; + +import java.util.List; + +/** + * 师傅入驻请求参数 + * + * @author ydq + * @date : 2022-06-14 15:35 + */ +@Data +public class WorkerSettledRequest { + // 师傅id + private Long workerId; + + // 入驻区域 + private List workerAreas; + + // 服务品类 + private List goodsCategories; + + // 特殊技能 + private List specialSkills; +} 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 674e771e..fe69f95f 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 @@ -1,6 +1,7 @@ package com.ghy.worker.mapper; import com.ghy.worker.domain.WorkerArea; +import org.apache.ibatis.annotations.Param; import java.util.List; @@ -13,6 +14,8 @@ public interface WorkerAreaMapper { int insert(WorkerArea workerArea); + int batchInsert(@Param("workerAreas") List workerAreas); + int delete(Long[] ids); int deleteByWorker(Long workerId); 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 index a90d0176..79c3a886 100644 --- a/ghy-worker/src/main/java/com/ghy/worker/mapper/WorkerGoodsCategoryMapper.java +++ b/ghy-worker/src/main/java/com/ghy/worker/mapper/WorkerGoodsCategoryMapper.java @@ -1,6 +1,7 @@ package com.ghy.worker.mapper; import com.ghy.worker.domain.WorkerGoodsCategory; +import org.apache.ibatis.annotations.Param; import java.util.List; @@ -13,6 +14,8 @@ public interface WorkerGoodsCategoryMapper { int insert(WorkerGoodsCategory workerGoodsCategory); + int batchInsert(@Param("workerCategories") List workerGoodsCategories); + int delete(Long[] ids); int deleteByWorker(Long workerId); diff --git a/ghy-worker/src/main/java/com/ghy/worker/mapper/WorkerSpecialSkillMapper.java b/ghy-worker/src/main/java/com/ghy/worker/mapper/WorkerSpecialSkillMapper.java index e741e192..61c3f0ad 100644 --- a/ghy-worker/src/main/java/com/ghy/worker/mapper/WorkerSpecialSkillMapper.java +++ b/ghy-worker/src/main/java/com/ghy/worker/mapper/WorkerSpecialSkillMapper.java @@ -1,6 +1,7 @@ package com.ghy.worker.mapper; import com.ghy.worker.domain.WorkerSpecialSkill; +import org.apache.ibatis.annotations.Param; import java.util.List; @@ -13,6 +14,8 @@ public interface WorkerSpecialSkillMapper { int insert(WorkerSpecialSkill workerArea); + int batchInsert(@Param("workerSpecialSkills") List workerSpecialSkills); + int delete(Long[] ids); int deleteByWorker(Long workerId); 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 ad46cb23..086d2847 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 @@ -18,4 +18,6 @@ public interface WorkerAreaService { int deleteByWorker(Long workerId); List getByWorker(Long workerId); + + void updateWorkerServArea(Long workerId, List areas); } 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 index ba49e501..9f6a86ed 100644 --- a/ghy-worker/src/main/java/com/ghy/worker/service/WorkerGoodsCategoryService.java +++ b/ghy-worker/src/main/java/com/ghy/worker/service/WorkerGoodsCategoryService.java @@ -18,4 +18,6 @@ public interface WorkerGoodsCategoryService { int deleteByWorker(Long workerId); List getByWorker(Long workerId); + + void updateWorkerGoodsCategory(Long workerId, List categories); } diff --git a/ghy-worker/src/main/java/com/ghy/worker/service/WorkerSpecialSkillService.java b/ghy-worker/src/main/java/com/ghy/worker/service/WorkerSpecialSkillService.java index 83f1b2eb..10aba103 100644 --- a/ghy-worker/src/main/java/com/ghy/worker/service/WorkerSpecialSkillService.java +++ b/ghy-worker/src/main/java/com/ghy/worker/service/WorkerSpecialSkillService.java @@ -19,4 +19,5 @@ public interface WorkerSpecialSkillService { List getByWorker(Long workerId); + void updateWorkerSpecialSkill(Long workerId, List skills); } 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 eb0fee2c..dff7253c 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 @@ -3,10 +3,14 @@ package com.ghy.worker.service.impl; import com.ghy.worker.domain.WorkerArea; import com.ghy.worker.mapper.WorkerAreaMapper; import com.ghy.worker.service.WorkerAreaService; +import org.apache.commons.collections4.CollectionUtils; import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.util.ArrayList; import java.util.List; +import java.util.Set; +import java.util.stream.Collectors; @Service public class WorkerAreaServiceImpl implements WorkerAreaService { @@ -33,4 +37,26 @@ public class WorkerAreaServiceImpl implements WorkerAreaService { public List getByWorker(Long workerId) { return workerAreaMapper.getByWorker(workerId); } + + @Override + public void updateWorkerServArea(Long workerId, List areas) { + List existAreas = getByWorker(workerId); + Set existAreaIds = existAreas.stream().map(WorkerArea::getStreetId).collect(Collectors.toSet()); + Set areaIds = areas.stream().map(WorkerArea::getStreetId).collect(Collectors.toSet()); + + // 新的区域-已存在区域的差集,为需要新加入的区域 + List areas2Insert = areas.stream().distinct().filter(x -> !existAreaIds.contains(x.getStreetId())) + .collect(Collectors.toList()); + // 已存在区域-新的区域的差集,为需要删除的区域 + List id2DelList = existAreas.stream().filter(x -> !areaIds.contains(x.getStreetId())) + .map(WorkerArea::getWorkerAreaId).collect(Collectors.toList()); + + if (!CollectionUtils.isEmpty(areas2Insert)) { + workerAreaMapper.batchInsert(areas2Insert); + } + if (!CollectionUtils.isEmpty(id2DelList)) { + Long[] id2Del = new Long[]{}; + workerAreaMapper.delete(id2DelList.toArray(id2Del)); + } + } } 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 index 24583353..d0997b9f 100644 --- 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 @@ -3,10 +3,13 @@ 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.apache.commons.collections4.CollectionUtils; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.List; +import java.util.Set; +import java.util.stream.Collectors; /** * 师傅服务类目Service @@ -38,4 +41,30 @@ public class WorkerGoodsCategoryServiceImpl implements WorkerGoodsCategoryServic public List getByWorker(Long workerId) { return workerGoodsCategoryMapper.getByWorker(workerId); } + + @Override + public void updateWorkerGoodsCategory (Long workerId, List categories) { + List existCategories = getByWorker(workerId); + Set existCategoryIds = existCategories.stream().map(WorkerGoodsCategory::getGoodsCategoryId).collect(Collectors.toSet()); + Set categoryIds = categories.stream().map(WorkerGoodsCategory::getGoodsCategoryId).collect(Collectors.toSet()); + + // 新的区域-已存在区域的差集,为需要新加入的区域 + List categories2Insert = CollectionUtils.subtract(categoryIds, existCategoryIds).stream().map(x -> { + WorkerGoodsCategory obj = new WorkerGoodsCategory(); + obj.setWorkerId(workerId); + obj.setGoodsCategoryId(x); + return obj; + }).collect(Collectors.toList()); + // 已存在区域-新的区域的差集,为需要删除的区域 + List id2DelList = existCategories.stream().filter(x -> !categoryIds.contains(x.getGoodsCategoryId())) + .map(WorkerGoodsCategory::getWorkerGoodsCategoryId).collect(Collectors.toList()); + + if (!CollectionUtils.isEmpty(categories2Insert)) { + workerGoodsCategoryMapper.batchInsert(categories2Insert); + } + if (!CollectionUtils.isEmpty(id2DelList)) { + Long[] id2Del = new Long[]{}; + workerGoodsCategoryMapper.delete(id2DelList.toArray(id2Del)); + } + } } diff --git a/ghy-worker/src/main/java/com/ghy/worker/service/impl/WorkerSpecialSkillServiceImpl.java b/ghy-worker/src/main/java/com/ghy/worker/service/impl/WorkerSpecialSkillServiceImpl.java index 560b36b6..b70cfeea 100644 --- a/ghy-worker/src/main/java/com/ghy/worker/service/impl/WorkerSpecialSkillServiceImpl.java +++ b/ghy-worker/src/main/java/com/ghy/worker/service/impl/WorkerSpecialSkillServiceImpl.java @@ -38,4 +38,10 @@ public class WorkerSpecialSkillServiceImpl implements WorkerSpecialSkillService public List getByWorker(Long workerId) { return workerSpecialSkillMapper.getByWorker(workerId); } + + @Override + public void updateWorkerSpecialSkill(Long workerId, List skills) { + workerSpecialSkillMapper.deleteByWorker(workerId); + workerSpecialSkillMapper.batchInsert(skills); + } } diff --git a/ghy-worker/src/main/resources/mapper/worker/WorkerAreaMapper.xml b/ghy-worker/src/main/resources/mapper/worker/WorkerAreaMapper.xml index f823df0f..4f1fa2b8 100644 --- a/ghy-worker/src/main/resources/mapper/worker/WorkerAreaMapper.xml +++ b/ghy-worker/src/main/resources/mapper/worker/WorkerAreaMapper.xml @@ -38,6 +38,15 @@ ) + + INSERT INTO worker_area ( worker_id, province_id, city_id, district_id, street_id, create_by, create_time) + VALUES + + (#{workerArea.workerId}, #{workerArea.provinceId}, #{workerArea.cityId}, #{workerArea.districtId}, + #{workerArea.streetId}, #{workerArea.workerId}, sysdate()) + + + diff --git a/ghy-worker/src/main/resources/mapper/worker/WorkerGoodsCategoryMapper.xml b/ghy-worker/src/main/resources/mapper/worker/WorkerGoodsCategoryMapper.xml index 485515d9..279879be 100644 --- a/ghy-worker/src/main/resources/mapper/worker/WorkerGoodsCategoryMapper.xml +++ b/ghy-worker/src/main/resources/mapper/worker/WorkerGoodsCategoryMapper.xml @@ -29,6 +29,14 @@ ) + + INSERT INTO worker_goods_category ( worker_id, goods_category_id, create_by, create_time) + VALUES + + (#{item.workerId}, #{item.goodsCategoryId}, #{item.workerId}, sysdate()) + + + diff --git a/ghy-worker/src/main/resources/mapper/worker/WorkerSpecialSkillMapper.xml b/ghy-worker/src/main/resources/mapper/worker/WorkerSpecialSkillMapper.xml index 2fdfac2d..41d3f5a4 100644 --- a/ghy-worker/src/main/resources/mapper/worker/WorkerSpecialSkillMapper.xml +++ b/ghy-worker/src/main/resources/mapper/worker/WorkerSpecialSkillMapper.xml @@ -42,6 +42,16 @@ ) + + INSERT INTO worker_special_skill ( worker_id, special_skill_id, credential, insurance, insurance_start, insurance_end, + create_by, create_time) + VALUES + + (#{item.workerId}, #{item.specialSkillId}, #{item.credential}, #{item.insurance}, #{item.insuranceStart} + #{item.insuranceEnd}, #{item.workerId}, sysdate()) + + +