师傅入驻接口开发,师傅detail订单修改接口开发,detail单列表查询接口修改

This commit is contained in:
donqi 2022-06-15 15:12:13 +08:00
parent d3af40e1a2
commit 740a19a565
16 changed files with 186 additions and 2 deletions

View File

@ -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.setGoodsName(goods.getGoodsName());
orderListResponse.setGoodsLogoUrl(goods.getGoodsImgUrl()); orderListResponse.setGoodsLogoUrl(goods.getGoodsImgUrl());
orderListResponse.setDiscountMoney(financialDetail.getDiscountMoney()); orderListResponse.setDiscountMoney(financialDetail.getDiscountMoney());
@ -141,7 +144,6 @@ public class OrderDetailController extends BaseController {
orderListResponse.setOrderStatus(detail.getOrderStatus()); orderListResponse.setOrderStatus(detail.getOrderStatus());
orderListResponse.setPayStatus(orderMaster.getPayStatus()); orderListResponse.setPayStatus(orderMaster.getPayStatus());
orderListResponse.setPayType(orderMaster.getPayType()); orderListResponse.setPayType(orderMaster.getPayType());
orderListResponse.setOrderMasterCode(detail.getCode());
orderListResponse.setStandardList(standardList); orderListResponse.setStandardList(standardList);
orderListResponse.setAddress(customerAddress.getAddress()); orderListResponse.setAddress(customerAddress.getAddress());
orderListResponse.setServerTime(detail.getRevTime()); orderListResponse.setServerTime(detail.getRevTime());
@ -198,6 +200,18 @@ public class OrderDetailController extends BaseController {
return toAjax(orderDetailService.updateOrderDetail(orderDetail)); 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));
}
/** /**
* 校验详细订单编码 * 校验详细订单编码
*/ */

View File

@ -4,13 +4,21 @@ import com.ghy.common.core.controller.BaseController;
import com.ghy.common.core.domain.AjaxResult; import com.ghy.common.core.domain.AjaxResult;
import com.ghy.common.core.page.TableDataInfo; import com.ghy.common.core.page.TableDataInfo;
import com.ghy.common.utils.ExceptionUtil; 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.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.WorkerService;
import com.ghy.worker.service.WorkerSpecialSkillService;
import org.apache.shiro.authz.annotation.RequiresPermissions; import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller; import org.springframework.stereotype.Controller;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.Assert;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import java.lang.reflect.Field;
import java.util.List; import java.util.List;
/** /**
@ -26,6 +34,15 @@ public class WorkerController extends BaseController {
@Autowired @Autowired
private WorkerService workerService; private WorkerService workerService;
@Autowired
private WorkerAreaService workerAreaService;
@Autowired
private WorkerGoodsCategoryService workerGoodsCategoryService;
@Autowired
private WorkerSpecialSkillService specialSkillService;
@RequiresPermissions("worker:worker:view") @RequiresPermissions("worker:worker:view")
@GetMapping() @GetMapping()
public String worker(){ 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());
}
}
} }

View File

@ -14,6 +14,10 @@ public class OrderListResponse {
private String orderMasterCode; private String orderMasterCode;
private Long orderDetailId;
private String orderDetailCode;
private String workerName; private String workerName;
private String workerPhone; private String workerPhone;

View File

@ -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<WorkerArea> workerAreas;
// 服务品类
private List<WorkerGoodsCategory> goodsCategories;
// 特殊技能
private List<WorkerSpecialSkill> specialSkills;
}

View File

@ -1,6 +1,7 @@
package com.ghy.worker.mapper; package com.ghy.worker.mapper;
import com.ghy.worker.domain.WorkerArea; import com.ghy.worker.domain.WorkerArea;
import org.apache.ibatis.annotations.Param;
import java.util.List; import java.util.List;
@ -13,6 +14,8 @@ public interface WorkerAreaMapper {
int insert(WorkerArea workerArea); int insert(WorkerArea workerArea);
int batchInsert(@Param("workerAreas") List<WorkerArea> workerAreas);
int delete(Long[] ids); int delete(Long[] ids);
int deleteByWorker(Long workerId); int deleteByWorker(Long workerId);

View File

@ -1,6 +1,7 @@
package com.ghy.worker.mapper; package com.ghy.worker.mapper;
import com.ghy.worker.domain.WorkerGoodsCategory; import com.ghy.worker.domain.WorkerGoodsCategory;
import org.apache.ibatis.annotations.Param;
import java.util.List; import java.util.List;
@ -13,6 +14,8 @@ public interface WorkerGoodsCategoryMapper {
int insert(WorkerGoodsCategory workerGoodsCategory); int insert(WorkerGoodsCategory workerGoodsCategory);
int batchInsert(@Param("workerCategories") List<WorkerGoodsCategory> workerGoodsCategories);
int delete(Long[] ids); int delete(Long[] ids);
int deleteByWorker(Long workerId); int deleteByWorker(Long workerId);

View File

@ -1,6 +1,7 @@
package com.ghy.worker.mapper; package com.ghy.worker.mapper;
import com.ghy.worker.domain.WorkerSpecialSkill; import com.ghy.worker.domain.WorkerSpecialSkill;
import org.apache.ibatis.annotations.Param;
import java.util.List; import java.util.List;
@ -13,6 +14,8 @@ public interface WorkerSpecialSkillMapper {
int insert(WorkerSpecialSkill workerArea); int insert(WorkerSpecialSkill workerArea);
int batchInsert(@Param("workerSpecialSkills") List<WorkerSpecialSkill> workerSpecialSkills);
int delete(Long[] ids); int delete(Long[] ids);
int deleteByWorker(Long workerId); int deleteByWorker(Long workerId);

View File

@ -18,4 +18,6 @@ public interface WorkerAreaService {
int deleteByWorker(Long workerId); int deleteByWorker(Long workerId);
List<WorkerArea> getByWorker(Long workerId); List<WorkerArea> getByWorker(Long workerId);
void updateWorkerServArea(Long workerId, List<WorkerArea> areas);
} }

View File

@ -18,4 +18,6 @@ public interface WorkerGoodsCategoryService {
int deleteByWorker(Long workerId); int deleteByWorker(Long workerId);
List<WorkerGoodsCategory> getByWorker(Long workerId); List<WorkerGoodsCategory> getByWorker(Long workerId);
void updateWorkerGoodsCategory(Long workerId, List<WorkerGoodsCategory> categories);
} }

View File

@ -19,4 +19,5 @@ public interface WorkerSpecialSkillService {
List<WorkerSpecialSkill> getByWorker(Long workerId); List<WorkerSpecialSkill> getByWorker(Long workerId);
void updateWorkerSpecialSkill(Long workerId, List<WorkerSpecialSkill> skills);
} }

View File

@ -3,10 +3,14 @@ package com.ghy.worker.service.impl;
import com.ghy.worker.domain.WorkerArea; import com.ghy.worker.domain.WorkerArea;
import com.ghy.worker.mapper.WorkerAreaMapper; import com.ghy.worker.mapper.WorkerAreaMapper;
import com.ghy.worker.service.WorkerAreaService; import com.ghy.worker.service.WorkerAreaService;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;
@Service @Service
public class WorkerAreaServiceImpl implements WorkerAreaService { public class WorkerAreaServiceImpl implements WorkerAreaService {
@ -33,4 +37,26 @@ public class WorkerAreaServiceImpl implements WorkerAreaService {
public List<WorkerArea> getByWorker(Long workerId) { public List<WorkerArea> getByWorker(Long workerId) {
return workerAreaMapper.getByWorker(workerId); return workerAreaMapper.getByWorker(workerId);
} }
@Override
public void updateWorkerServArea(Long workerId, List<WorkerArea> areas) {
List<WorkerArea> existAreas = getByWorker(workerId);
Set<Long> existAreaIds = existAreas.stream().map(WorkerArea::getStreetId).collect(Collectors.toSet());
Set<Long> areaIds = areas.stream().map(WorkerArea::getStreetId).collect(Collectors.toSet());
// 新的区域-已存在区域的差集为需要新加入的区域
List<WorkerArea> areas2Insert = areas.stream().distinct().filter(x -> !existAreaIds.contains(x.getStreetId()))
.collect(Collectors.toList());
// 已存在区域-新的区域的差集为需要删除的区域
List<Long> 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));
}
}
} }

View File

@ -3,10 +3,13 @@ package com.ghy.worker.service.impl;
import com.ghy.worker.domain.WorkerGoodsCategory; import com.ghy.worker.domain.WorkerGoodsCategory;
import com.ghy.worker.mapper.WorkerGoodsCategoryMapper; import com.ghy.worker.mapper.WorkerGoodsCategoryMapper;
import com.ghy.worker.service.WorkerGoodsCategoryService; import com.ghy.worker.service.WorkerGoodsCategoryService;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.List; import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;
/** /**
* 师傅服务类目Service * 师傅服务类目Service
@ -38,4 +41,30 @@ public class WorkerGoodsCategoryServiceImpl implements WorkerGoodsCategoryServic
public List<WorkerGoodsCategory> getByWorker(Long workerId) { public List<WorkerGoodsCategory> getByWorker(Long workerId) {
return workerGoodsCategoryMapper.getByWorker(workerId); return workerGoodsCategoryMapper.getByWorker(workerId);
} }
@Override
public void updateWorkerGoodsCategory (Long workerId, List<WorkerGoodsCategory> categories) {
List<WorkerGoodsCategory> existCategories = getByWorker(workerId);
Set<Long> existCategoryIds = existCategories.stream().map(WorkerGoodsCategory::getGoodsCategoryId).collect(Collectors.toSet());
Set<Long> categoryIds = categories.stream().map(WorkerGoodsCategory::getGoodsCategoryId).collect(Collectors.toSet());
// 新的区域-已存在区域的差集为需要新加入的区域
List<WorkerGoodsCategory> categories2Insert = CollectionUtils.subtract(categoryIds, existCategoryIds).stream().map(x -> {
WorkerGoodsCategory obj = new WorkerGoodsCategory();
obj.setWorkerId(workerId);
obj.setGoodsCategoryId(x);
return obj;
}).collect(Collectors.toList());
// 已存在区域-新的区域的差集为需要删除的区域
List<Long> 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));
}
}
} }

View File

@ -38,4 +38,10 @@ public class WorkerSpecialSkillServiceImpl implements WorkerSpecialSkillService
public List<WorkerSpecialSkill> getByWorker(Long workerId) { public List<WorkerSpecialSkill> getByWorker(Long workerId) {
return workerSpecialSkillMapper.getByWorker(workerId); return workerSpecialSkillMapper.getByWorker(workerId);
} }
@Override
public void updateWorkerSpecialSkill(Long workerId, List<WorkerSpecialSkill> skills) {
workerSpecialSkillMapper.deleteByWorker(workerId);
workerSpecialSkillMapper.batchInsert(skills);
}
} }

View File

@ -38,6 +38,15 @@
) )
</insert> </insert>
<insert id="batchInsert" parameterType="list" >
INSERT INTO worker_area ( worker_id, province_id, city_id, district_id, street_id, create_by, create_time)
VALUES
<foreach collection="workerAreas" separator="," item="workerArea">
(#{workerArea.workerId}, #{workerArea.provinceId}, #{workerArea.cityId}, #{workerArea.districtId},
#{workerArea.streetId}, #{workerArea.workerId}, sysdate())
</foreach>
</insert>
<select id="getByWorker" parameterType="Long" resultMap="WorkerAreaResult"> <select id="getByWorker" parameterType="Long" resultMap="WorkerAreaResult">
SELECT * FROM worker_area WHERE worker_id = #{workerId} SELECT * FROM worker_area WHERE worker_id = #{workerId}
</select> </select>

View File

@ -29,6 +29,14 @@
) )
</insert> </insert>
<insert id="batchInsert" parameterType="list" >
INSERT INTO worker_goods_category ( worker_id, goods_category_id, create_by, create_time)
VALUES
<foreach collection="workerCategories" separator="," item="item">
(#{item.workerId}, #{item.goodsCategoryId}, #{item.workerId}, sysdate())
</foreach>
</insert>
<select id="getByWorker" parameterType="Long" resultMap="WorkerGoodsCategoryResult"> <select id="getByWorker" parameterType="Long" resultMap="WorkerGoodsCategoryResult">
SELECT * FROM worker_goods_category WHERE worker_id = #{workerId} SELECT * FROM worker_goods_category WHERE worker_id = #{workerId}
</select> </select>

View File

@ -42,6 +42,16 @@
) )
</insert> </insert>
<insert id="batchInsert" parameterType="list" >
INSERT INTO worker_special_skill ( worker_id, special_skill_id, credential, insurance, insurance_start, insurance_end,
create_by, create_time)
VALUES
<foreach collection="workerSpecialSkills" separator="," item="item">
(#{item.workerId}, #{item.specialSkillId}, #{item.credential}, #{item.insurance}, #{item.insuranceStart}
#{item.insuranceEnd}, #{item.workerId}, sysdate())
</foreach>
</insert>
<select id="getByWorker" parameterType="Long" resultMap="WorkerSpecialSkillResult"> <select id="getByWorker" parameterType="Long" resultMap="WorkerSpecialSkillResult">
SELECT * SELECT *
FROM worker_special_skill FROM worker_special_skill