Commit faf74894d91ed3217079fce7fb2494cd77060175

Authored by guzijian
1 parent 3cd77100

feat: 新增取消订单,双向评价

trash-garbage/pom.xml
... ... @@ -15,10 +15,10 @@
15 15 <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
16 16 </properties>
17 17 <dependencies>
18   - <dependency>
19   - <groupId>com.trash</groupId>
20   - <artifactId>trash-common</artifactId>
21   - </dependency>
  18 +<!-- <dependency>-->
  19 +<!-- <groupId>com.trash</groupId>-->
  20 +<!-- <artifactId>trash-common</artifactId>-->
  21 +<!-- </dependency>-->
22 22 <dependency>
23 23 <groupId>com.trash</groupId>
24 24 <artifactId>trash-framework</artifactId>
... ...
trash-garbage/src/main/java/com/trash/garbage/global/GlobalStatus.java
... ... @@ -27,7 +27,7 @@ public class GlobalStatus {
27 27 /**
28 28 * 用户状态管理
29 29 */
30   - public enum UserStatusEnum {
  30 + public enum GarUserStatusEnum {
31 31 /**
32 32 * 微信登录
33 33 */
... ... @@ -50,7 +50,7 @@ public class GlobalStatus {
50 50 return this.description;
51 51 }
52 52  
53   - UserStatusEnum(Integer status, String description) {
  53 + GarUserStatusEnum(Integer status, String description) {
54 54 this.status = status;
55 55 this.description = description;
56 56 }
... ... @@ -87,13 +87,15 @@ public class GlobalStatus {
87 87 NEW_ORDER(0, "新订单"),
88 88 ACTIVE_ORDER(1, "处理中"),
89 89 ALL_ORDER(2, "全部订单"),
90   - SUCCESS_ORDER(3, "待支付订单"),
  90 + SUCCESS_ORDER(3, "已完成"),
91 91 FAIL_ORDER(9, "订单处理失败"),
92 92 CANCEL_FLAG_NO(0, "未取消订单"),
93 93 CANCEL_FLAG_YES(1, "取消订单"),
94 94 IMAGE_TYPE_CURRENT(0, "现场图片"),
95 95 IMAGE_TYPE_PUT_ON(1, "装车图片"),
96 96 IMAGE_TYPE_PUT_DOWN(2, "卸车图片"),
  97 + EVALUATE_TYPE_COMPANY(0,"对公司评价"),
  98 + EVALUATE_TYPE_USER(1,"对用户评价"),
97 99 EVALUATE_ORDER_NO(0,"待评价"),
98 100 EVALUATE_ORDER_YES(1,"已评价");
99 101  
... ...
trash-garbage/src/main/java/com/trash/garbage/pojo/domain/GarOrder.java
... ... @@ -44,22 +44,6 @@ public class GarOrder implements Serializable {
44 44 */
45 45 private String garOrderCarType;
46 46  
47   - public Integer getGarOrderCarNumber() {
48   - return garOrderCarNumber;
49   - }
50   -
51   - public void setGarOrderCarNumber(Integer garOrderCarNumber) {
52   - this.garOrderCarNumber = garOrderCarNumber;
53   - }
54   -
55   - public String getGarOrderCarType() {
56   - return garOrderCarType;
57   - }
58   -
59   - public void setGarOrderCarType(String garOrderCarType) {
60   - this.garOrderCarType = garOrderCarType;
61   - }
62   -
63 47 /**
64 48 * 订单地址
65 49 */
... ... @@ -150,8 +134,21 @@ public class GarOrder implements Serializable {
150 134 /**
151 135 * 评分标识
152 136 */
153   - private Integer garEvaluateFlag;
154   - /**
  137 + private Integer garEvaluateFlag;
  138 + /**
  139 + * 处理人评分标识
  140 + */
  141 + private Integer garHandlerEvaluateFlag;
  142 +
  143 + public Integer getGarHandlerEvaluateFlag() {
  144 + return garHandlerEvaluateFlag;
  145 + }
  146 +
  147 + public void setGarHandlerEvaluateFlag(Integer garHandlerEvaluateFlag) {
  148 + this.garHandlerEvaluateFlag = garHandlerEvaluateFlag;
  149 + }
  150 +
  151 + /**
155 152 * 原因
156 153 */
157 154 private String garReason;
... ... @@ -370,6 +367,21 @@ public class GarOrder implements Serializable {
370 367 this.garReason = garReason;
371 368 }
372 369  
  370 + public Integer getGarOrderCarNumber() {
  371 + return garOrderCarNumber;
  372 + }
  373 +
  374 + public void setGarOrderCarNumber(Integer garOrderCarNumber) {
  375 + this.garOrderCarNumber = garOrderCarNumber;
  376 + }
  377 +
  378 + public String getGarOrderCarType() {
  379 + return garOrderCarType;
  380 + }
  381 +
  382 + public void setGarOrderCarType(String garOrderCarType) {
  383 + this.garOrderCarType = garOrderCarType;
  384 + }
373 385  
374 386  
375 387  
... ...
trash-garbage/src/main/java/com/trash/garbage/pojo/dto/EvaluateDto.java
... ... @@ -14,6 +14,19 @@ public class EvaluateDto {
14 14 @NotBlank(message = "订单id不能为空")
15 15 private String orderId;
16 16 private String content;
  17 +
  18 + public Integer getEvaluateType() {
  19 + return evaluateType;
  20 + }
  21 +
  22 + public void setEvaluateType(Integer evaluateType) {
  23 + this.evaluateType = evaluateType;
  24 + }
  25 +
  26 + /**
  27 + * 评价类型 0对公司 | 1对用户
  28 + */
  29 + private Integer evaluateType;
17 30 @NotNull
18 31 private Integer score;
19 32 private List<String> imageUrls;
... ...
trash-garbage/src/main/java/com/trash/garbage/pojo/vo/OrderDetailVo.java
... ... @@ -19,7 +19,7 @@ public class OrderDetailVo {
19 19 private String garOrderHandlerId;
20 20  
21 21 private Integer garEvaluateFlag;
22   - private Boolean garHandleEvaluateFlag;
  22 + private Boolean garHandlerEvaluateFlag;
23 23 private String garOrderCarType;
24 24  
25 25 /**
... ... @@ -114,12 +114,9 @@ public class OrderDetailVo {
114 114 this.putDownImages = new ArrayList<>();
115 115 this.putOnImages = new ArrayList<>();
116 116 this.handleFlag = false;
117   - this.garHandleEvaluateFlag = true;
  117 + this.garHandlerEvaluateFlag = true;
118 118 }
119 119  
120   - public String getGarOrderHandleId() {
121   - return garOrderHandlerId;
122   - }
123 120  
124 121 public void setGarOrderHandlerId(String garOrderHandlerId) {
125 122 this.garOrderHandlerId = garOrderHandlerId;
... ... @@ -307,12 +304,12 @@ public class OrderDetailVo {
307 304 this.handleFlag = handleFlag;
308 305 }
309 306  
310   - public Boolean getGarHandleEvaluateFlag() {
311   - return garHandleEvaluateFlag;
  307 + public Boolean getGarHandlerEvaluateFlag() {
  308 + return garHandlerEvaluateFlag;
312 309 }
313 310  
314   - public void setGarHandleEvaluateFlag(Boolean garHandleEvaluateFlag) {
315   - this.garHandleEvaluateFlag = garHandleEvaluateFlag;
  311 + public void setGarHandlerEvaluateFlag(Boolean garHandlerEvaluateFlag) {
  312 + this.garHandlerEvaluateFlag = garHandlerEvaluateFlag;
316 313 }
317 314  
318 315  
... ...
trash-garbage/src/main/java/com/trash/garbage/service/impl/GarOrderServiceImpl.java
... ... @@ -90,18 +90,20 @@ public class GarOrderServiceImpl extends ServiceImpl&lt;GarOrderMapper, GarOrder&gt;
90 90 @Override
91 91 public OrderDetailVo queryOrderDetail(String id) {
92 92 GarOrder order = this.getById(id);
93   - String tel = SecurityUtils.getLoginUser().getUser().getPhonenumber();
  93 + GarUser user = garUserService.getById(SecurityUtils.getLoginUser().getUser().getUserId());
94 94 LambdaQueryWrapper<GarOrderImage> qwi = new LambdaQueryWrapper<>();
95 95 qwi.eq(GarOrderImage::getGarOrderId, id);
96 96 OrderDetailVo vo = new OrderDetailVo();
97   - BeanUtils.copyBeanProp(vo, order);
98   - DriverVo driverVo = new DriverVo();
99   - driverVo.setPhoneNo(tel);
100   - List<DriverVo> driverVos = driverService.selectDriverList(driverVo);
101   - if (CollectionUtil.isNotEmpty(driverVos)) {
  97 + List<DriverVo> driverVos = null;
  98 + if (user.getGarUserType().equals(GlobalStatus.GarUserStatusEnum.DRIVER_USER.getDescription())) {
102 99 vo.setHandleFlag(true);
103   - vo.setGarHandleEvaluateFlag(false);
  100 + vo.setGarHandlerEvaluateFlag(false);
  101 + // 防止其他人员处理订单
  102 + if (!order.getGarOrderHandlerStatus().equals(GlobalStatus.GarOrderStatus.NEW_ORDER.getValue()) && !order.getGarOrderHandlerId().equals(user.getGarUserId())) {
  103 + vo.setHandleFlag(false);
  104 + }
104 105 }
  106 + BeanUtils.copyBeanProp(vo, order);
105 107 List<GarOrderImage> imageList = garOrderImageService.list(qwi);
106 108 for (GarOrderImage image : imageList) {
107 109 if (GlobalStatus.GarOrderStatus.CANCEL_FLAG_NO.getValue().equals(image.getGarOrderImageType())) {
... ... @@ -115,9 +117,13 @@ public class GarOrderServiceImpl extends ServiceImpl&lt;GarOrderMapper, GarOrder&gt;
115 117 }
116 118 }
117 119 if (StringUtils.isNotEmpty(vo.getGarOrderHandlerId())) {
118   - if (vo.getHandleFlag()) {
  120 + GarUser handleUser = garUserService.getById(vo.getGarOrderHandlerId());
  121 + DriverVo driverVo = new DriverVo();
  122 + driverVo.setPhoneNo(handleUser.getGarUserTel());
  123 + driverVos = driverService.selectDriverList(driverVo);
  124 + if (CollectionUtil.isNotEmpty(driverVos)) {
119 125 vo.setGarOrderHandleName(driverVos.get(0).getName());
120   - vo.setGarOrderHandleTel(driverVo.getPhoneNo());
  126 + vo.setGarOrderHandleTel(driverVos.get(0).getPhoneNo());
121 127 }
122 128 }
123 129 return vo;
... ... @@ -128,9 +134,9 @@ public class GarOrderServiceImpl extends ServiceImpl&lt;GarOrderMapper, GarOrder&gt;
128 134 String userId = SecurityUtils.getLoginUser().getUser().getUserId();
129 135 GarUser user = garUserService.getById(userId);
130 136 LambdaQueryWrapper<GarOrder> qw = new LambdaQueryWrapper<>();
131   - qw.orderByAsc(GarOrder::getGarEvaluateFlag, GarOrder::getGarOrderHandlerStatus);
  137 + qw.orderByAsc(GarOrder::getGarUpdateTime, GarOrder::getGarOrderHandlerStatus);
132 138 // 居民用户
133   - if (user.getGarUserType().equals(GlobalStatus.UserStatusEnum.NORMAL_USER.getDescription())) {
  139 + if (user.getGarUserType().equals(GlobalStatus.GarUserStatusEnum.NORMAL_USER.getDescription())) {
134 140 PageHelper.startPage(pageNo, pageSize);
135 141 // 待清运 || 清运中 || 已完成 || 待支付
136 142 if (GlobalStatus.GarOrderStatus.NEW_ORDER.getValue().equals(type)
... ... @@ -169,7 +175,6 @@ public class GarOrderServiceImpl extends ServiceImpl&lt;GarOrderMapper, GarOrder&gt;
169 175 PageInfo<GarOrder> pageInfo = new PageInfo<GarOrder>(orderList, pageSize);
170 176 return pageInfo;
171 177 }
172   -
173 178 if (GlobalStatus.GarOrderStatus.ACTIVE_ORDER.getValue().equals(type)
174 179 || GlobalStatus.GarOrderStatus.SUCCESS_ORDER.getValue().equals(type)) {
175 180 qw.eq(GarOrder::getGarOrderCompanyId, enterprise.getParentId())
... ... @@ -206,14 +211,18 @@ public class GarOrderServiceImpl extends ServiceImpl&lt;GarOrderMapper, GarOrder&gt;
206 211 update(uw);
207 212 return "订单取消成功";
208 213 }
209   - // 运输员操作 TODO 公司所属 待清运- 》 清运中
210   - if (GlobalStatus.UserStatusEnum.DRIVER_USER.getDescription().equals(user.getGarUserType())) {
  214 + // 运输员操作 TODO
  215 + if (GlobalStatus.GarUserStatusEnum.DRIVER_USER.getDescription().equals(user.getGarUserType())) {
  216 + // 公司所属 待清运- 》 清运中
211 217 if (order.getGarOrderHandlerStatus().equals(GlobalStatus.GarOrderStatus.NEW_ORDER.getValue())
212 218 || GlobalStatus.GarOrderStatus.NEW_ORDER.getValue().equals(dto.getHandleType())) {
  219 + if (StringUtils.isNotEmpty(order.getGarOrderHandlerId())) {
  220 + return "订单已经被别人接受啦";
  221 + }
213 222 LambdaUpdateWrapper<GarOrder> uw = new LambdaUpdateWrapper<>();
214 223 uw.eq(GarOrder::getGarOrderId, dto.getGarOrderId())
215 224 .set(GarOrder::getGarOrderHandlerStatus, GlobalStatus.GarOrderStatus.ACTIVE_ORDER.getValue())
216   - .set(GarOrder::getGarOrderHandlerId, userId);
  225 + .set(GarOrder::getGarOrderHandlerId, user.getGarUserId());
217 226 update(uw);
218 227 return "已接受派单";
219 228 }
... ... @@ -223,6 +232,7 @@ public class GarOrderServiceImpl extends ServiceImpl&lt;GarOrderMapper, GarOrder&gt;
223 232 LambdaUpdateWrapper<GarOrder> uw = new LambdaUpdateWrapper<>();
224 233 uw.eq(GarOrder::getGarOrderId, dto.getGarOrderId())
225 234 .set(GarOrder::getGarOrderHandlerStatus, GlobalStatus.GarOrderStatus.SUCCESS_ORDER.getValue())
  235 + .set(GarOrder::getGarHandlerEvaluateFlag, GlobalStatus.GarOrderStatus.EVALUATE_ORDER_NO.getValue())
226 236 .set(GarOrder::getGarEvaluateFlag, GlobalStatus.GarOrderStatus.EVALUATE_ORDER_NO.getValue());
227 237 update(uw);
228 238 }
... ... @@ -250,23 +260,24 @@ public class GarOrderServiceImpl extends ServiceImpl&lt;GarOrderMapper, GarOrder&gt;
250 260 String userId = SecurityUtils.getLoginUser().getUser().getUserId();
251 261 GarUser user = garUserService.getById(userId);
252 262 GarOrder order = getById(dto.getOrderId());
253   - // TODO 用户评价
254 263 if (GlobalStatus.GarOrderStatus.SUCCESS_ORDER.getValue().equals(order.getGarOrderHandlerStatus())) {
255   - evaluate(dto, order);
  264 + evaluate(dto, order, user);
256 265 }
257 266 return "已评价";
258 267 }
259 268  
260   - private void evaluate(EvaluateDto dto, GarOrder order) {
  269 + private void evaluate(EvaluateDto dto, GarOrder order, GarUser user) {
261 270 GarOrderEvaluate evaluate = new GarOrderEvaluate();
262 271 evaluate.setGarOrderId(order.getGarOrderId());
263 272 evaluate.setGarEvaluateContent(dto.getContent());
264 273 evaluate.setGarEvaluateScore(dto.getScore());
  274 + evaluate.setGarCompanyId(order.getGarOrderCompanyId());
265 275 garOrderEvaluateService.save(evaluate);
266 276 // 修改订单评价状态
267 277 LambdaUpdateWrapper<GarOrder> uw = new LambdaUpdateWrapper<>();
268 278 uw.eq(GarOrder::getGarOrderId, order.getGarOrderId())
269   - .set(GarOrder::getGarEvaluateFlag, GlobalStatus.GarOrderStatus.EVALUATE_ORDER_YES.getValue());
  279 + .set(dto.getEvaluateType().equals(GlobalStatus.GarOrderStatus.EVALUATE_TYPE_COMPANY.getValue()), GarOrder::getGarEvaluateFlag, GlobalStatus.GarOrderStatus.EVALUATE_ORDER_YES.getValue())
  280 + .set(dto.getEvaluateType().equals(GlobalStatus.GarOrderStatus.EVALUATE_TYPE_USER.getValue()), GarOrder::getGarHandlerEvaluateFlag, GlobalStatus.GarOrderStatus.EVALUATE_ORDER_YES.getValue());
270 281 update(uw);
271 282 }
272 283 }
... ...
trash-garbage/src/main/java/com/trash/garbage/service/impl/GarUserServiceImpl.java
... ... @@ -28,7 +28,6 @@ import com.trash.garbage.mapper.GarUserMapper;
28 28 import com.trash.garbage.utils.*;
29 29 import org.apache.commons.codec.binary.Base64;
30 30 import org.springframework.beans.factory.annotation.Autowired;
31   -import org.springframework.http.HttpRequest;
32 31 import org.springframework.security.core.authority.SimpleGrantedAuthority;
33 32 import org.springframework.security.core.userdetails.UsernameNotFoundException;
34 33 import org.springframework.stereotype.Service;
... ... @@ -71,7 +70,7 @@ public class GarUserServiceImpl extends ServiceImpl&lt;GarUserMapper, GarUser&gt;
71 70 if (Objects.isNull(loginDto)) {
72 71 throw new UsernameNotFoundException("当前用户不存在!");
73 72 }
74   - if (loginDto.getLoginType().equals(GlobalStatus.UserStatusEnum.WX_LOGIN.getStatus())) {
  73 + if (loginDto.getLoginType().equals(GlobalStatus.GarUserStatusEnum.WX_LOGIN.getStatus())) {
75 74 String url = "https://api.weixin.qq.com/sns/jscode2session?appid=" + wxConfig.getAppId() + "&secret=" + wxConfig.getSecret() + "&js_code=" + loginDto.getWxCode() + "&grant_type=authorization_code";
76 75 String body = HttpUtil.createGet(url).header("cache-control", "no-cache").execute().body();
77 76 JSONObject open = JSONObject.parseObject(body);
... ... @@ -96,7 +95,7 @@ public class GarUserServiceImpl extends ServiceImpl&lt;GarUserMapper, GarUser&gt;
96 95 nUser = new GarUser();
97 96 nUser.setGarUserTel(loginDto.getTel());
98 97 nUser.setGarUserDelFlag(GlobalStatus.DEL_FLAG_NO);
99   - nUser.setGarUserType(GlobalStatus.UserStatusEnum.NORMAL_USER.getDescription());
  98 + nUser.setGarUserType(GlobalStatus.GarUserStatusEnum.NORMAL_USER.getDescription());
100 99 this.save(nUser);
101 100 }
102 101 LoginUser loginUser = new LoginUser();
... ...
trash-garbage/src/main/resources/mapper/GarOrderMapper.xml
... ... @@ -26,6 +26,7 @@
26 26 <result property="garReason" column="gar_reason" jdbcType="VARCHAR"/>
27 27 <result property="garCancelFlag" column="gar_cancel_flag" jdbcType="TINYINT"/>
28 28 <result property="garEvaluateFlag" column="gar_evaluate_flag" jdbcType="TINYINT"/>
  29 + <result property="garHandlerEvaluateFlag" column="gar_handler_evaluate_flag" jdbcType="TINYINT"/>
29 30 <result property="garOrderCarNumber" column="gar_order_car_number" jdbcType="TINYINT"/>
30 31 <result property="garOrderCarType" column="gar_order_car_type" jdbcType="TINYINT"/>
31 32 </resultMap>
... ... @@ -38,6 +39,6 @@
38 39 gar_order_company_name,gar_order_company_tel,gar_order_hander_status,
39 40 gar_order_agreement_time,gar_create_time,gar_update_time,
40 41 gar_create_by,gar_update_by,gar_remark,gar_reason,gar_cancel_flag,
41   - gar_evaluate_flag,gar_order_car_number,gar_order_car_type
  42 + gar_evaluate_flag,gar_order_car_number,gar_order_car_type,gar_handler_evaluate_flag
42 43 </sql>
43 44 </mapper>
... ...