小程序评价代码修改

This commit is contained in:
张恒 2023-10-19 17:30:41 +08:00
parent 7fcf37c42f
commit ca5b656ee6
11 changed files with 185 additions and 33 deletions

View File

@ -1,5 +1,6 @@
package com.xinelu.applet.controller.nursingorder;
import com.xinelu.applet.dto.nurseorder.NurseOrderDTO;
import com.xinelu.applet.service.nursingorder.INursingOrderService;
import com.xinelu.applet.vo.nursingorder.AppletGoodsOrderVO;
import com.xinelu.applet.vo.nursingorder.NursingOrderInfoVO;
@ -14,6 +15,7 @@ import org.apache.commons.lang3.StringUtils;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
@ -97,12 +99,12 @@ public class NursingOrderController extends BaseController {
/**
* 根据openid编号查询对应得订单
*/
@MobileRequestAuthorization
//@MobileRequestAuthorization
@GetMapping("/getAppletOrderList")
public AjaxResult getAppletOrderList(Long parentId, String orderStatus) {
if (Objects.isNull(parentId)) {
return AjaxResult.error("请选择要查询的用户信息!");
public TableDataInfo getAppletOrderList(NurseOrderDTO nurseOrder) {
if (Objects.isNull(nurseOrder) || Objects.isNull(nurseOrder.getParentId()) || StringUtils.isBlank(nurseOrder.getCardNo()) || StringUtils.isBlank(nurseOrder.getOrderStatus())) {
return getDataTable(new ArrayList<>());
}
return nursingOrderService.getAppletOrderList(parentId, orderStatus);
return getDataTable(nursingOrderService.getAppletOrderList(nurseOrder));
}
}

View File

@ -84,4 +84,8 @@ public class OrderEvaluateAndPictureDTO implements Serializable {
*/
private List<OrderEvaluatePictureInfo> orderEvaluatePictureInfoList;
/**
* 订单来源泉医模块SPRING_DOCTOR家医模块FAMILY_DOCTOR
*/
private String orderSource;
}

View File

@ -0,0 +1,38 @@
package com.xinelu.applet.dto.nurseorder;
import com.xinelu.common.core.domain.BaseDomain;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
/**
* @Description 个人中心订单查询
* @Author zhangheng
* @Date 2022-10-18
*/
@EqualsAndHashCode(callSuper = true)
@Data
public class NurseOrderDTO extends BaseDomain implements Serializable {
/**
* 用户信息
*/
private Long parentId;
/**
* 订单状态
*/
private String orderStatus;
/**
* 居民身份证号
*/
private String cardNo;
/**
* 地区标识
*/
private String region;
}

View File

@ -69,7 +69,7 @@ public interface NursingOrderMapper {
/**
* 根据openid编号查询对应得订单
*
* @param patientId openid编号
* @param patientId openid编号
* @param orderStatus 订单状态
* @return AjaxResult
*/
@ -78,9 +78,17 @@ public interface NursingOrderMapper {
/**
* 根据openid编号查询对应得订单
*
* @param patientId openid编号
* @param patientId openid编号
* @param orderStatus 订单状态
* @return AjaxResult
*/
List<PatientOrder> getGoodsOrderAndConsultationOrder(@Param("patientId") Long patientId, @Param("orderStatus") String orderStatus);
/**
* 根据patientId编号查询评价信息
*
* @param patientId openid编号
* @return AjaxResult
*/
List<PatientOrder> getOrderEvaluateByPatientId(Long patientId);
}

View File

@ -6,6 +6,7 @@ import com.xinelu.applet.service.apporderevaluate.IAppOrderEvaluateService;
import com.xinelu.common.config.XinELuConfig;
import com.xinelu.common.core.domain.AjaxResult;
import com.xinelu.common.enums.GooodsOrderStatusEnum;
import com.xinelu.common.enums.OrderSourceEnum;
import com.xinelu.common.enums.OrderStatusEnum;
import com.xinelu.common.exception.ServiceException;
import com.xinelu.common.utils.bean.BeanUtils;
@ -85,12 +86,14 @@ public class AppOrderEvaluateServiceImpl implements IAppOrderEvaluateService {
@Transactional(rollbackFor = Exception.class)
@Override
public AjaxResult insertGoodsOrderEvaluate(OrderEvaluateAndPictureDTO orderEvaluateAndPictureDTO) {
GoodsOrder goodsOrder = appOrderEvaluateMapper.selectGoodsOrderByOrderNo(orderEvaluateAndPictureDTO.getOrderNo());
if (Objects.isNull(goodsOrder) || StringUtils.isBlank(goodsOrder.getOrderStatus()) || !goodsOrder.getOrderStatus().equals(GooodsOrderStatusEnum.RECEIVED_GOODS.getInfo())) {
return AjaxResult.error("当前订单未确认收货,请先确认收货后进行评价!");
}
if (StringUtils.equals(GooodsOrderStatusEnum.EVALUATED.getInfo(), goodsOrder.getOrderStatus())) {
return AjaxResult.error("当前订单已评价!");
if (OrderSourceEnum.SPRING_DOCTOR.getInfo().equals(orderEvaluateAndPictureDTO.getOrderSource())) {
GoodsOrder goodsOrder = appOrderEvaluateMapper.selectGoodsOrderByOrderNo(orderEvaluateAndPictureDTO.getOrderNo());
if (Objects.isNull(goodsOrder) || StringUtils.isBlank(goodsOrder.getOrderStatus()) || !goodsOrder.getOrderStatus().equals(GooodsOrderStatusEnum.RECEIVED_GOODS.getInfo())) {
return AjaxResult.error("当前订单未确认收货,请先确认收货后进行评价!");
}
if (StringUtils.equals(GooodsOrderStatusEnum.EVALUATED.getInfo(), goodsOrder.getOrderStatus())) {
return AjaxResult.error("当前订单已评价!");
}
}
//新增评价信息
OrderEvaluateInfo orderEvaluateInfo = new OrderEvaluateInfo();
@ -100,9 +103,12 @@ public class AppOrderEvaluateServiceImpl implements IAppOrderEvaluateService {
if (insertOrderEvaluateInfo <= 0) {
throw new ServiceException("评价失败,请联系管理员!");
}
if (OrderSourceEnum.FAMILY_DOCTOR.getInfo().equals(orderEvaluateAndPictureDTO.getOrderSource())) {
return AjaxResult.success();
}
//新增评价图片
List<OrderEvaluatePictureInfo> afferentEvaluatePicture = orderEvaluateAndPictureDTO.getOrderEvaluatePictureInfoList();
if (CollectionUtils.isNotEmpty(orderEvaluateAndPictureDTO.getOrderEvaluatePictureInfoList())) {
if (CollectionUtils.isNotEmpty(afferentEvaluatePicture)) {
afferentEvaluatePicture.forEach(item -> {
item.setOrderEvaluateId(orderEvaluateInfo.getId());
item.setCreateTime(LocalDateTime.now());

View File

@ -1,8 +1,10 @@
package com.xinelu.applet.service.nursingorder;
import com.xinelu.applet.dto.nurseorder.NurseOrderDTO;
import com.xinelu.applet.vo.nursingorder.AppletGoodsOrderVO;
import com.xinelu.applet.vo.nursingorder.NursingOrderInfoVO;
import com.xinelu.applet.vo.nursingorder.PatientOrder;
import com.xinelu.common.core.domain.AjaxResult;
import com.xinelu.common.core.domain.entity.SysDictData;
import com.xinelu.manage.domain.goodsOrder.GoodsOrder;
@ -59,9 +61,8 @@ public interface INursingOrderService {
/**
* 根据openid编号查询对应得订单
*
* @param parentId openid编号
* @param orderStatus 订单状态
* @param nurseOrder nurseOrder
* @return AjaxResult
*/
AjaxResult getAppletOrderList(Long parentId, String orderStatus);
List<PatientOrder> getAppletOrderList(NurseOrderDTO nurseOrder);
}

View File

@ -1,17 +1,24 @@
package com.xinelu.applet.service.nursingorder.impl;
import com.alibaba.fastjson2.JSON;
import com.xinelu.applet.dto.nurseorder.NurseOrderDTO;
import com.xinelu.applet.mapper.nursingorder.NursingOrderMapper;
import com.xinelu.applet.service.nursingorder.INursingOrderService;
import com.xinelu.applet.vo.nursingorder.AppletGoodsOrderVO;
import com.xinelu.applet.vo.nursingorder.NursingOrderInfoVO;
import com.xinelu.applet.vo.nursingorder.PatientOrder;
import com.xinelu.applet.vo.nursingorder.PatientOrderVO;
import com.xinelu.applet.vo.specialdisease.AppointmentOrderDetailsInfoVO;
import com.xinelu.common.core.domain.AjaxResult;
import com.xinelu.common.core.domain.entity.SysDictData;
import com.xinelu.common.enums.ConfirmRefundStatusEnum;
import com.xinelu.common.enums.GooodsOrderStatusEnum;
import com.xinelu.common.enums.OrderSourceEnum;
import com.xinelu.common.enums.OrderStatusEnum;
import com.xinelu.common.exception.ServiceException;
import com.xinelu.common.utils.http.HttpUtils;
import com.xinelu.common.utils.spring.SpringUtils;
import com.xinelu.manage.domain.goodsOrder.GoodsOrder;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
@ -22,6 +29,9 @@ import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
import static com.xinelu.common.utils.PageUtils.startPage;
/**
* @Description 订单分页
@ -41,7 +51,7 @@ public class NursingOrderServiceImpl implements INursingOrderService {
private final String NOT_EVALUATED = "NOT_EVALUATED";
/**
* 评价标识
* 评价标识
*/
private final String EVALUATED = "EVALUATED";
@ -125,22 +135,21 @@ public class NursingOrderServiceImpl implements INursingOrderService {
/**
* 根据openid编号查询对应得订单
*
* @param parentId openid编号
* @param orderStatus 订单状态
* @param nurseOrder nurseOrder
* @return AjaxResult
*/
@Override
public AjaxResult getAppletOrderList(Long parentId, String orderStatus) {
public List<PatientOrder> getAppletOrderList(NurseOrderDTO nurseOrder) {
List<PatientOrder> patientOrders = new ArrayList<>();
List<PatientOrder> appletOrderList = new ArrayList<>();
List<PatientOrder> goodsOrderAndConsultationOrder = new ArrayList<>();
if (NOT_EVALUATED.equals(orderStatus)) {
appletOrderList = nursingOrderMapper.getAppointmentOrderListByParentId(parentId, OrderStatusEnum.COMPLETE.getInfo());
goodsOrderAndConsultationOrder = nursingOrderMapper.getGoodsOrderAndConsultationOrder(parentId, GooodsOrderStatusEnum.RECEIVED_GOODS.getInfo());
if (NOT_EVALUATED.equals(nurseOrder.getOrderStatus())) {
appletOrderList = nursingOrderMapper.getAppointmentOrderListByParentId(nurseOrder.getParentId(), OrderStatusEnum.COMPLETE.getInfo());
goodsOrderAndConsultationOrder = nursingOrderMapper.getGoodsOrderAndConsultationOrder(nurseOrder.getParentId(), GooodsOrderStatusEnum.RECEIVED_GOODS.getInfo());
}
if (EVALUATED.equals(orderStatus)) {
appletOrderList = nursingOrderMapper.getAppointmentOrderListByParentId(parentId, OrderStatusEnum.EVALUATED.getInfo());
goodsOrderAndConsultationOrder = nursingOrderMapper.getGoodsOrderAndConsultationOrder(parentId, GooodsOrderStatusEnum.EVALUATED.getInfo());
if (EVALUATED.equals(nurseOrder.getOrderStatus())) {
appletOrderList = nursingOrderMapper.getAppointmentOrderListByParentId(nurseOrder.getParentId(), OrderStatusEnum.EVALUATED.getInfo());
goodsOrderAndConsultationOrder = nursingOrderMapper.getGoodsOrderAndConsultationOrder(nurseOrder.getParentId(), GooodsOrderStatusEnum.EVALUATED.getInfo());
}
if (CollectionUtils.isNotEmpty(appletOrderList)) {
patientOrders.addAll(appletOrderList);
@ -148,6 +157,30 @@ public class NursingOrderServiceImpl implements INursingOrderService {
if (CollectionUtils.isNotEmpty(goodsOrderAndConsultationOrder)) {
patientOrders.addAll(goodsOrderAndConsultationOrder);
}
return AjaxResult.success(patientOrders);
String result = HttpUtils.sendGet(SpringUtils.getFdUrl(nurseOrder.getRegion()) + "/performance/recordV2/" + nurseOrder.getCardNo());
if (StringUtils.isBlank(result)) {
throw new ServiceException("获取微信小程序用户信息失败", 201);
}
PatientOrderVO resultHttp = JSON.parseObject(result, PatientOrderVO.class);
if (Objects.nonNull(resultHttp) && CollectionUtils.isNotEmpty(resultHttp.getData())) {
List<PatientOrder> data = resultHttp.getData();
List<PatientOrder> orderEvaluate = nursingOrderMapper.getOrderEvaluateByPatientId(nurseOrder.getParentId());
if (CollectionUtils.isNotEmpty(orderEvaluate) && EVALUATED.equals(nurseOrder.getOrderStatus())) {
for (PatientOrder patientOrder : orderEvaluate) {
PatientOrder dataFirst = data.stream().filter(Objects::nonNull).filter(item -> Objects.nonNull(item.getOrderNo()) && patientOrder.getOrderNo().equals(item.getOrderNo())).findFirst().orElse(new PatientOrder());
dataFirst.setCompositeScore(patientOrder.getCompositeScore());
dataFirst.setOrderSource(OrderSourceEnum.FAMILY_DOCTOR.getInfo());
patientOrders.add(dataFirst);
}
}
if (CollectionUtils.isNotEmpty(orderEvaluate) && NOT_EVALUATED.equals(nurseOrder.getOrderStatus())) {
data.removeAll(orderEvaluate);
data.forEach(item ->item.setOrderSource(OrderSourceEnum.FAMILY_DOCTOR.getInfo()));
}
patientOrders.addAll(data);
}
startPage();
patientOrders.sort((t1, t2) -> t2.getCreateTime().compareTo(t1.getCreateTime()));
return patientOrders;
}
}

View File

@ -60,4 +60,21 @@ public class PatientOrder implements Serializable {
* 订单类型
*/
private String orderType;
/**
* 预约服务满意度一般COMMONLY满意SATISFIED不满意DISSATISFIED
*/
@ApiModelProperty(value = "预约服务满意度一般COMMONLY满意SATISFIED不满意DISSATISFIED")
private String evaluateSatisfaction;
/**
* 商品订单综合评分取值1代表1颗星2代表两颗星3代表三颗星4代表四颗星5代表五颗星
*/
@ApiModelProperty(value = "商品订单综合评分取值1代表1颗星2代表两颗星3代表三颗星4代表四颗星5代表五颗星")
private Integer compositeScore;
/**
* 订单来源泉医模块SPRING_DOCTOR家医模块FAMILY_DOCTOR
*/
private String orderSource;
}

View File

@ -0,0 +1,31 @@
package com.xinelu.applet.vo.nursingorder;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
/**
* @Description 服务评价
* @Author zhangheng
* @Date 2022-10-18
*/
@Data
public class PatientOrderVO implements Serializable {
/**
* 成功标识
*/
private String code;
/**
* 文字描述
*/
private String msg;
/**
* 信息集合
*/
private List<PatientOrder> data;
}

View File

@ -347,11 +347,14 @@
ao.create_time,
aod.nurse_item_name orderName,
nsi.item_picture_url pictureUrl,
'APPOINTMENT_ORDER' AS orderType
'APPOINTMENT_ORDER' AS orderType,
nei.evaluate_satisfaction,
'SPRING_DOCTOR' AS orderSource
FROM
appointment_order ao
LEFT JOIN appointment_order_details aod ON ao.order_no = aod.order_no
LEFT JOIN nurse_station_item nsi ON nsi.id = aod.nurse_station_item_id
LEFT JOIN order_evaluate_info nei ON nei.order_no = ao.order_no
where
ao.order_status = #{orderStatus}
and ao.patient_id = #{patientId}
@ -368,15 +371,24 @@
gor.order_type,
god.goods_name orderName,
gad.attribute_piture_url pictureUrl,
hpi.person_picture_url
hpi.person_picture_url,
nei.composite_score,
'SPRING_DOCTOR' AS orderSource
FROM
goods_order gor
LEFT JOIN goods_order_details god ON god.order_no = gor.order_no
LEFT JOIN goods_attribute_details gad ON gad.id = god.goods_attribute_details_id
LEFT JOIN hospital_person_info hpi ON hpi.id = gor.hospital_person_id
LEFT JOIN order_evaluate_info nei ON nei.order_no = gor.order_no
where
gor.order_status = #{orderStatus}
and gor.patient_id = #{patientId}
and gor.del_flag = 0
</select>
<select id="getOrderEvaluateByPatientId" resultType="com.xinelu.applet.vo.nursingorder.PatientOrder">
SELECT order_no
FROM order_evaluate_info
where patient_id = #{patientId}
</select>
</mapper>

View File

@ -62,9 +62,9 @@ public class OrderEvaluateInfoController extends BaseController {
/**
* 新增预约服务订单和商品订单评价信息
*/
@PreAuthorize("@ss.hasPermi('system:orderEvaluateInfo:add')")
//@PreAuthorize("@ss.hasPermi('system:orderEvaluateInfo:add')")
@Log(title = "预约服务订单和商品订单评价信息", businessType = BusinessType.INSERT)
@PostMapping("add")
@PostMapping("/add")
public AjaxResult add(@RequestBody OrderEvaluateInfo orderEvaluateInfo) {
return toAjax(orderEvaluateInfoService.insertOrderEvaluateInfo(orderEvaluateInfo));
}
@ -74,7 +74,7 @@ public class OrderEvaluateInfoController extends BaseController {
*/
@PreAuthorize("@ss.hasPermi('system:orderEvaluateInfo:edit')")
@Log(title = "预约服务订单和商品订单评价信息", businessType = BusinessType.UPDATE)
@PostMapping("edit")
@PostMapping("/edit")
public AjaxResult edit(@RequestBody OrderEvaluateInfo orderEvaluateInfo) {
return toAjax(orderEvaluateInfoService.updateOrderEvaluateInfo(orderEvaluateInfo));
}