Commit 5c1cc31a authored by huangcb's avatar huangcb

新增货主接口:编辑常跑线路

parent a13d5e10
...@@ -87,4 +87,15 @@ public class ErrorMessageComponent { ...@@ -87,4 +87,15 @@ public class ErrorMessageComponent {
@Value("${error-message.goodsowner.regularly-route.add.1004}") @Value("${error-message.goodsowner.regularly-route.add.1004}")
private String goodsOwnerRegularlyRouteAdd1004; private String goodsOwnerRegularlyRouteAdd1004;
@Value("${error-message.goodsowner.regularly-route.edit.1001}")
private String goodsOwnerRegularlyRouteEdit1001;
@Value("${error-message.goodsowner.regularly-route.edit.1002}")
private String goodsOwnerRegularlyRouteEdit1002;
@Value("${error-message.goodsowner.regularly-route.edit.1003}")
private String goodsOwnerRegularlyRouteEdit1003;
@Value("${error-message.goodsowner.regularly-route.edit.1004}")
private String goodsOwnerRegularlyRouteEdit1004;
@Value("${error-message.goodsowner.regularly-route.edit.1005}")
private String goodsOwnerRegularlyRouteEdit1005;
} }
...@@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSONObject; ...@@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSONObject;
import com.esv.freight.customer.common.exception.EException; import com.esv.freight.customer.common.exception.EException;
import com.esv.freight.customer.common.response.EResponse; import com.esv.freight.customer.common.response.EResponse;
import com.esv.freight.customer.common.validator.groups.ValidatorInsert; import com.esv.freight.customer.common.validator.groups.ValidatorInsert;
import com.esv.freight.customer.common.validator.groups.ValidatorUpdate;
import com.esv.freight.customer.module.goodsowner.form.RegularlyRouteForm; import com.esv.freight.customer.module.goodsowner.form.RegularlyRouteForm;
import com.esv.freight.customer.module.goodsowner.service.RegularlyRouteService; import com.esv.freight.customer.module.goodsowner.service.RegularlyRouteService;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
...@@ -36,6 +37,13 @@ public class RegularlyRouteController { ...@@ -36,6 +37,13 @@ public class RegularlyRouteController {
this.regularlyRouteService = regularlyRouteService; this.regularlyRouteService = regularlyRouteService;
} }
/**
* description 新增常跑线路
* param [form]
* return com.esv.freight.customer.common.response.EResponse
* author Administrator
* createTime 2020/04/22 14:25
**/
@PostMapping("/add") @PostMapping("/add")
public EResponse add(@RequestBody @Validated(ValidatorInsert.class) RegularlyRouteForm form) throws EException { public EResponse add(@RequestBody @Validated(ValidatorInsert.class) RegularlyRouteForm form) throws EException {
Long id = regularlyRouteService.add(form); Long id = regularlyRouteService.add(form);
...@@ -44,4 +52,18 @@ public class RegularlyRouteController { ...@@ -44,4 +52,18 @@ public class RegularlyRouteController {
return EResponse.ok(data); return EResponse.ok(data);
} }
/**
* description 编辑常跑路线
* param [form]
* return com.esv.freight.customer.common.response.EResponse
* author Administrator
* createTime 2020/04/22 14:26
**/
@PostMapping("/edit")
public EResponse edit(@RequestBody @Validated(ValidatorUpdate.class) RegularlyRouteForm form) throws EException {
regularlyRouteService.edit(form);
return EResponse.ok();
}
} }
package com.esv.freight.customer.module.goodsowner.form; package com.esv.freight.customer.module.goodsowner.form;
import com.esv.freight.customer.common.validator.groups.ValidatorInsert; import com.esv.freight.customer.common.validator.groups.ValidatorInsert;
import com.esv.freight.customer.common.validator.groups.ValidatorUpdate;
import lombok.Data; import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle; import org.apache.commons.lang3.builder.ToStringStyle;
...@@ -21,20 +22,20 @@ import javax.validation.constraints.NotNull; ...@@ -21,20 +22,20 @@ import javax.validation.constraints.NotNull;
@Data @Data
public class RegularlyRouteForm { public class RegularlyRouteForm {
// @NotNull(message = "参数id不能为空") @NotNull(message = "参数id不能为空", groups = {ValidatorUpdate.class})
private Long id; private Long id;
@Length(max = 50, message = "参数routeName长度不合法", groups = {ValidatorInsert.class}) @Length(max = 50, message = "参数routeName长度不合法", groups = {ValidatorInsert.class, ValidatorUpdate.class})
@NotBlank(message = "参数routeName不能为空", groups = {ValidatorInsert.class}) @NotBlank(message = "参数routeName不能为空", groups = {ValidatorInsert.class, ValidatorUpdate.class})
private String routeName; private String routeName;
@NotNull(message = "参数ownerId不能为空", groups = {ValidatorInsert.class}) @NotNull(message = "参数ownerId不能为空", groups = {ValidatorInsert.class, ValidatorUpdate.class})
private Long ownerId; private Long ownerId;
@NotNull(message = "参数deliveryId不能为空", groups = {ValidatorInsert.class}) @NotNull(message = "参数deliveryId不能为空", groups = {ValidatorInsert.class, ValidatorUpdate.class})
private Long deliveryId; private Long deliveryId;
@NotNull(message = "参数receiveId不能为空", groups = {ValidatorInsert.class}) @NotNull(message = "参数receiveId不能为空", groups = {ValidatorInsert.class, ValidatorUpdate.class})
private Long receiveId; private Long receiveId;
@Override @Override
......
...@@ -33,5 +33,14 @@ public interface RegularlyRouteService extends IService<RegularlyRouteEntity> { ...@@ -33,5 +33,14 @@ public interface RegularlyRouteService extends IService<RegularlyRouteEntity> {
**/ **/
Long add(RegularlyRouteForm form); Long add(RegularlyRouteForm form);
/**
* description 编辑常跑路线
* param [form]
* return java.lang.Integer
* author Administrator
* createTime 2020/04/22 14:20
**/
Integer edit(RegularlyRouteForm form);
} }
...@@ -94,6 +94,50 @@ public class RegularlyRouteServiceImpl extends ServiceImpl<RegularlyRouteDao, Re ...@@ -94,6 +94,50 @@ public class RegularlyRouteServiceImpl extends ServiceImpl<RegularlyRouteDao, Re
return routeEntity.getId(); return routeEntity.getId();
} }
@Override
public Integer edit(RegularlyRouteForm form) {
// 1.校验线路ID是否有效
RegularlyRouteEntity routeEntity = this.baseMapper.selectById(form.getId());
if (null == routeEntity) {
throw new EException(1001, errorMessageComponent.getGoodsOwnerRegularlyRouteEdit1001());
}
// 2.校验线路名称是否重复
QueryWrapper<RegularlyRouteEntity> queryWrapper = new QueryWrapper<>();
queryWrapper.ne("id", form.getId());
queryWrapper.eq("owner_id", form.getOwnerId());
queryWrapper.eq("route_name", form.getRouteName());
List<RegularlyRouteEntity> routeEntityList = this.baseMapper.selectList(queryWrapper);
if (0 < routeEntityList.size()) {
throw new EException(1002, errorMessageComponent.getGoodsOwnerRegularlyRouteEdit1002());
}
// 3.校验获取ID是否有效
AccountEntity accountEntity = this.accountService.getById(form.getOwnerId());
if (null == accountEntity) {
throw new EException(1003, errorMessageComponent.getGoodsOwnerRegularlyRouteEdit1003());
}
// 4.校验发货地址ID是否有效
DeliveryAddressEntity deliveryAddressEntity = this.deliveryAddressService.getById(form.getDeliveryId());
if (null == deliveryAddressEntity) {
throw new EException(1004, errorMessageComponent.getGoodsOwnerRegularlyRouteEdit1004());
}
// 5.校验收货地址ID是否有效
ReceiveAddressEntity receiveAddressEntity = this.receiveAddressService.getById(form.getReceiveId());
if (null == receiveAddressEntity) {
throw new EException(1005, errorMessageComponent.getGoodsOwnerRegularlyRouteEdit1005());
}
// 6.更新
routeEntity = new RegularlyRouteEntity();
BeanUtils.copyProperties(form, routeEntity);
int count = this.baseMapper.updateById(routeEntity);
return count;
}
@Override @Override
public List<RegularlyRouteEntity> getOwnerRouteByName(RegularlyRouteForm form) { public List<RegularlyRouteEntity> getOwnerRouteByName(RegularlyRouteForm form) {
QueryWrapper<RegularlyRouteEntity> queryWrapper = new QueryWrapper<>(); QueryWrapper<RegularlyRouteEntity> queryWrapper = new QueryWrapper<>();
......
...@@ -92,4 +92,10 @@ error-message: ...@@ -92,4 +92,10 @@ error-message:
1001: 重复的常跑线路名称 1001: 重复的常跑线路名称
1002: 无效的货主ID 1002: 无效的货主ID
1003: 无效的发货地址ID 1003: 无效的发货地址ID
1004: 无效的收货地址ID 1004: 无效的收货地址ID
\ No newline at end of file edit:
1001: 无效的常跑线路ID
1002: 重复的常跑线路名称
1003: 无效的货主ID
1004: 无效的发货地址ID
1005: 无效的收货地址ID
\ No newline at end of file
...@@ -47,7 +47,7 @@ public class RegularlyRouteControllerTest extends BaseTestController { ...@@ -47,7 +47,7 @@ public class RegularlyRouteControllerTest extends BaseTestController {
// 构造数据 // 构造数据
RegularlyRouteForm form = new RegularlyRouteForm(); RegularlyRouteForm form = new RegularlyRouteForm();
form.setOwnerId(1L); form.setOwnerId(1L);
form.setRouteName("沈阳-大连线路"); form.setRouteName("沈阳-大连英歌石植物园线路");
form.setDeliveryId(7L); form.setDeliveryId(7L);
form.setReceiveId(5L); form.setReceiveId(5L);
JSONObject reqJson = JSONObject.parseObject(form.toString()); JSONObject reqJson = JSONObject.parseObject(form.toString());
...@@ -192,4 +192,195 @@ public class RegularlyRouteControllerTest extends BaseTestController { ...@@ -192,4 +192,195 @@ public class RegularlyRouteControllerTest extends BaseTestController {
Assert.assertEquals(1004, result.getIntValue("code")); Assert.assertEquals(1004, result.getIntValue("code"));
} }
/**
* 编辑常跑线路
**/
@Test
public void b1_edit_success_test() throws Exception {
String url = "/goodsowner/regularly/route/edit";
// 构造数据
RegularlyRouteForm form = new RegularlyRouteForm();
form.setId(1L);
form.setOwnerId(1L);
form.setRouteName("沈阳-大连华宇大厦线路");
form.setDeliveryId(7L);
form.setReceiveId(6L);
JSONObject reqJson = JSONObject.parseObject(form.toString());
MvcResult mvcResult = this.getMockMvc().perform(MockMvcRequestBuilders.post(url)
.contentType(MediaType.APPLICATION_JSON_UTF8_VALUE)
.headers(this.getDefaultHttpHeaders())
.content(reqJson.toJSONString()))
.andDo(MockMvcResultHandlers.print())
.andExpect(MockMvcResultMatchers.status().isOk())
.andReturn();
String responseStr = mvcResult.getResponse().getContentAsString();
log.info(responseStr);
JSONObject result = JSONObject.parseObject(responseStr);
Assert.assertEquals(ECode.SUCCESS.code(), result.getIntValue("code"));
}
/**
* 编辑常跑线路:无效的线路ID
**/
@Test
@Rollback
public void b2_edit_wrong_id_failure_test() throws Exception {
String url = "/goodsowner/regularly/route/edit";
// 构造数据
RegularlyRouteForm form = new RegularlyRouteForm();
form.setId(99999L);
form.setOwnerId(1L);
form.setRouteName("沈阳-大连华宇大厦线路");
form.setDeliveryId(7L);
form.setReceiveId(6L);
JSONObject reqJson = JSONObject.parseObject(form.toString());
MvcResult mvcResult = this.getMockMvc().perform(MockMvcRequestBuilders.post(url)
.contentType(MediaType.APPLICATION_JSON_UTF8_VALUE)
.headers(this.getDefaultHttpHeaders())
.content(reqJson.toJSONString()))
.andDo(MockMvcResultHandlers.print())
.andExpect(MockMvcResultMatchers.status().isOk())
.andReturn();
String responseStr = mvcResult.getResponse().getContentAsString();
log.info(responseStr);
JSONObject result = JSONObject.parseObject(responseStr);
Assert.assertEquals(1001, result.getIntValue("code"));
}
/**
* 编辑常跑线路:重复的常跑线路名称
**/
@Test
@Rollback
public void b3_edit_name_repeat_failure_test() throws Exception {
String url = "/goodsowner/regularly/route/edit";
// 构造数据
RegularlyRouteForm form = new RegularlyRouteForm();
form.setId(1L);
form.setOwnerId(1L);
form.setRouteName("沈阳-大连英歌石植物园线路");
form.setDeliveryId(7L);
form.setReceiveId(6L);
JSONObject reqJson = JSONObject.parseObject(form.toString());
MvcResult mvcResult = this.getMockMvc().perform(MockMvcRequestBuilders.post(url)
.contentType(MediaType.APPLICATION_JSON_UTF8_VALUE)
.headers(this.getDefaultHttpHeaders())
.content(reqJson.toJSONString()))
.andDo(MockMvcResultHandlers.print())
.andExpect(MockMvcResultMatchers.status().isOk())
.andReturn();
String responseStr = mvcResult.getResponse().getContentAsString();
log.info(responseStr);
JSONObject result = JSONObject.parseObject(responseStr);
Assert.assertEquals(1002, result.getIntValue("code"));
}
/**
* 编辑常跑线路:无效的货主ID
**/
@Test
@Rollback
public void b3_edit_wrong_owner_id_failure_test() throws Exception {
String url = "/goodsowner/regularly/route/edit";
// 构造数据
RegularlyRouteForm form = new RegularlyRouteForm();
form.setId(1L);
form.setOwnerId(99999L);
form.setRouteName("沈阳-大连英歌石植物园线路111");
form.setDeliveryId(7L);
form.setReceiveId(6L);
JSONObject reqJson = JSONObject.parseObject(form.toString());
MvcResult mvcResult = this.getMockMvc().perform(MockMvcRequestBuilders.post(url)
.contentType(MediaType.APPLICATION_JSON_UTF8_VALUE)
.headers(this.getDefaultHttpHeaders())
.content(reqJson.toJSONString()))
.andDo(MockMvcResultHandlers.print())
.andExpect(MockMvcResultMatchers.status().isOk())
.andReturn();
String responseStr = mvcResult.getResponse().getContentAsString();
log.info(responseStr);
JSONObject result = JSONObject.parseObject(responseStr);
Assert.assertEquals(1003, result.getIntValue("code"));
}
/**
* 编辑常跑线路:无效的发货地址ID
**/
@Test
@Rollback
public void b4_edit_wrong_delivery_id_failure_test() throws Exception {
String url = "/goodsowner/regularly/route/edit";
// 构造数据
RegularlyRouteForm form = new RegularlyRouteForm();
form.setId(1L);
form.setOwnerId(1L);
form.setRouteName("沈阳-大连英歌石植物园线路111");
form.setDeliveryId(99999L);
form.setReceiveId(6L);
JSONObject reqJson = JSONObject.parseObject(form.toString());
MvcResult mvcResult = this.getMockMvc().perform(MockMvcRequestBuilders.post(url)
.contentType(MediaType.APPLICATION_JSON_UTF8_VALUE)
.headers(this.getDefaultHttpHeaders())
.content(reqJson.toJSONString()))
.andDo(MockMvcResultHandlers.print())
.andExpect(MockMvcResultMatchers.status().isOk())
.andReturn();
String responseStr = mvcResult.getResponse().getContentAsString();
log.info(responseStr);
JSONObject result = JSONObject.parseObject(responseStr);
Assert.assertEquals(1004, result.getIntValue("code"));
}
/**
* 编辑常跑线路:无效的收货地址ID
**/
@Test
@Rollback
public void b5_edit_wrong_receive_id_failure_test() throws Exception {
String url = "/goodsowner/regularly/route/edit";
// 构造数据
RegularlyRouteForm form = new RegularlyRouteForm();
form.setId(1L);
form.setOwnerId(1L);
form.setRouteName("沈阳-大连英歌石植物园线路111");
form.setDeliveryId(7L);
form.setReceiveId(99999L);
JSONObject reqJson = JSONObject.parseObject(form.toString());
MvcResult mvcResult = this.getMockMvc().perform(MockMvcRequestBuilders.post(url)
.contentType(MediaType.APPLICATION_JSON_UTF8_VALUE)
.headers(this.getDefaultHttpHeaders())
.content(reqJson.toJSONString()))
.andDo(MockMvcResultHandlers.print())
.andExpect(MockMvcResultMatchers.status().isOk())
.andReturn();
String responseStr = mvcResult.getResponse().getContentAsString();
log.info(responseStr);
JSONObject result = JSONObject.parseObject(responseStr);
Assert.assertEquals(1005, result.getIntValue("code"));
}
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment