定点、到站回收订单业务功能bug问题修复v4

door
LI-CCONG\李聪聪 7 months ago
parent 15dfe751af
commit 872525cf37

1
.gitignore vendored

@ -5,6 +5,7 @@ target/
!**/src/test/**/target/ !**/src/test/**/target/
logs logs
upload upload
**/src/main/**/test/
### STS ### ### STS ###
.apt_generated .apt_generated

@ -41,7 +41,7 @@ public class genCodeMain {
}) })
//4、策略配置 //4、策略配置
.strategyConfig(builder -> { .strategyConfig(builder -> {
builder.addInclude("nx_enterprise_recycle_station") // 设置需要生成的数据表名 builder.addInclude("nx_housing_estate") // 设置需要生成的数据表名
.addTablePrefix("nx") // 设置过滤表前缀 .addTablePrefix("nx") // 设置过滤表前缀
//4.1、Mapper策略配置 //4.1、Mapper策略配置
.mapperBuilder() .mapperBuilder()
@ -52,7 +52,7 @@ public class genCodeMain {
//4.2、service 策略配置 //4.2、service 策略配置
.serviceBuilder() .serviceBuilder()
.formatServiceFileName("%sService") //格式化 service 接口文件名称,%s进行匹配表名如 UserService .formatServiceFileName("I%sService") //格式化 service 接口文件名称,%s进行匹配表名如 UserService
.formatServiceImplFileName("%sServiceImpl") //格式化 service 实现类文件名称,%s进行匹配表名如 UserServiceImpl .formatServiceImplFileName("%sServiceImpl") //格式化 service 实现类文件名称,%s进行匹配表名如 UserServiceImpl
//4.3、实体类策略配置 //4.3、实体类策略配置

@ -132,6 +132,24 @@ public class RecycleOrderController {
return CommonResult.success(CollUtils.getFirst(recycleOrderRespVO)); return CommonResult.success(CollUtils.getFirst(recycleOrderRespVO));
} }
@ApiOperation("回收订单明细详情")
@GetMapping("/product-info")
public CommonResult<List<RecycleOrderDetailResponseVO>> OrderProductList(@RequestParam("orderId") String orderId) {
List<RecycleOrderProduct> orderProducts = recycleOrderProductService.getOrderProductsByOrderId(orderId);
List<RecycleOrderDetailResponseVO> detailResponseVOList = BeanUtils.copyList(orderProducts, RecycleOrderDetailResponseVO.class);
Set<String> productIds = detailResponseVOList.stream().map(RecycleOrderDetailResponseVO::getProductId).collect(Collectors.toSet());
List<Product> productList = priceProductService.getProductListByIds(productIds);
if (CollUtils.isNotEmpty(productList)) {
Map<String, Product> productMap = productList.stream().collect(Collectors.toMap(Product::getId, p -> p, (k1, k2) -> k1));
for (RecycleOrderDetailResponseVO detailVO : detailResponseVOList) {
Product product = productMap.get(detailVO.getProductId());
detailVO.setProduct(BeanUtils.copyBean(product, ProductSimpleVO.class));
}
}
// 是否展示最新价格? todo
return CommonResult.success(detailResponseVOList);
}
@ApiOperation("回收订单更新") @ApiOperation("回收订单更新")
@PostMapping("/update") @PostMapping("/update")

@ -3,13 +3,25 @@ package cc.yunxi.controller;
import cc.yunxi.common.domain.CommonResult; import cc.yunxi.common.domain.CommonResult;
import cc.yunxi.common.exception.BadRequestException; import cc.yunxi.common.exception.BadRequestException;
import cc.yunxi.common.exception.BizIllegalException; import cc.yunxi.common.exception.BizIllegalException;
import cc.yunxi.config.props.JwtProperties;
import cc.yunxi.config.props.WxPayV3Properties; import cc.yunxi.config.props.WxPayV3Properties;
import cc.yunxi.domain.dto.UserDTO;
import cc.yunxi.domain.query.TestQuery; import cc.yunxi.domain.query.TestQuery;
import cc.yunxi.enums.UserTypeEnum; import cc.yunxi.enums.UserTypeEnum;
import cc.yunxi.service.ITestService; import cc.yunxi.service.ITestService;
import cc.yunxi.test.AppConfig;
import cc.yunxi.test.dal.Animal;
import cc.yunxi.utils.JwtTool;
import cn.hutool.core.date.DatePattern; import cn.hutool.core.date.DatePattern;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.lang.Console;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import cn.hutool.extra.spring.SpringUtil;
import cn.hutool.http.Header;
import cn.hutool.http.HttpRequest;
import cn.hutool.http.HttpUtil;
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil; import cn.hutool.json.JSONUtil;
import cn.hutool.log.Log; import cn.hutool.log.Log;
import com.ijpay.core.IJPayHttpResponse; import com.ijpay.core.IJPayHttpResponse;
@ -26,14 +38,16 @@ import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.scheduling.annotation.Async; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Lazy;
import org.springframework.util.concurrent.ListenableFuture; import org.springframework.util.concurrent.ListenableFuture;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.math.BigDecimal;
import java.security.cert.X509Certificate; import java.security.cert.X509Certificate;
import java.util.Collections; import java.util.Collections;
import java.util.concurrent.ExecutionException; import java.util.HashMap;
@Api(tags = "测试接口") @Api(tags = "测试接口")
@RestController @RestController
@ -47,9 +61,19 @@ public class TestController {
@Resource @Resource
private WxPayV3Properties wxPayV3Properties; private WxPayV3Properties wxPayV3Properties;
@Resource
private JwtTool jwtTool;
@Autowired
@Lazy
private JwtProperties jwtProperties;
@ApiOperation("测试接口成功") @ApiOperation("测试接口成功")
@GetMapping("/test01") @GetMapping("/test01")
public CommonResult<String> success() { public CommonResult<String> success() {
Animal animal = SpringUtil.getBean("animalObj", Animal.class);
AppConfig appConfig = SpringUtil.getBean("appConfig", AppConfig.class);
log.info("animal bean: {}, appConfig bean: {}", animal, appConfig);
return CommonResult.success("ok"); return CommonResult.success("ok");
} }
@ -70,6 +94,26 @@ public class TestController {
return CommonResult.success("ok"); return CommonResult.success("ok");
} }
@ApiOperation("测试token生成")
@PostMapping("/test06")
public CommonResult<String> createToken() {
UserDTO userDTO = new UserDTO();
userDTO.setUsername("admin");
userDTO.setId("1");
String token = jwtTool.createToken(userDTO);
log.info("token ttl = {}", jwtProperties.getTokenTTL().toMillis());
return CommonResult.success(token);
}
@ApiOperation("测试解析token")
@PostMapping("/test07")
public CommonResult<UserDTO> parseToken(@RequestParam("authorization") String token) {
UserDTO userDTO = jwtTool.parseToken(token);
return CommonResult.success(userDTO);
}
@ApiOperation("测试枚举转换") @ApiOperation("测试枚举转换")
@PostMapping("/test04") @PostMapping("/test04")
public CommonResult<TestQuery> enumConvert(@RequestBody TestQuery testQuery) { public CommonResult<TestQuery> enumConvert(@RequestBody TestQuery testQuery) {
@ -94,6 +138,7 @@ public class TestController {
return CommonResult.success("数据处理完成"); return CommonResult.success("数据处理完成");
} }
@ApiOperation(value = "测试支付", hidden = true) @ApiOperation(value = "测试支付", hidden = true)
@GetMapping("/tQ7lA2mG9f") @GetMapping("/tQ7lA2mG9f")
public CommonResult<String> wxCash(@RequestParam("openid") String openid, @RequestParam("amount") Integer amount) throws Exception { public CommonResult<String> wxCash(@RequestParam("openid") String openid, @RequestParam("amount") Integer amount) throws Exception {
@ -147,4 +192,17 @@ public class TestController {
return serialNo; return serialNo;
} }
@ApiOperation(value = "测试JSON接口请求")
@GetMapping("/test08")
public CommonResult<String> test08() {
JSONObject jsonObject = new JSONObject();
jsonObject.set("amount", "222").set("merchantId", "540429689097824901");
String json = jsonObject.toJSONString(1);
String result = HttpRequest.post("http://localhost:8808/api/index/recharge-balance")
.header("authorization", "8bd2aa89033ead51c505e44994e42189")
.body(json)
.execute().body();
return CommonResult.success(result);
}
} }

@ -26,6 +26,13 @@ public interface IRecycleOrderProductService extends IService<RecycleOrderProduc
*/ */
PriceProduct getLatestPriceProduct(String productId); PriceProduct getLatestPriceProduct(String productId);
/**
*
* @param orderId
* @return List<RecycleOrderProduct>
*/
List<RecycleOrderProduct> getOrderProductsByOrderId(String orderId);
/** /**
* *
@ -34,7 +41,6 @@ public interface IRecycleOrderProductService extends IService<RecycleOrderProduc
*/ */
List<RecycleOrderProduct> getOrderProductsByOrderIds(List<String> orderIds); List<RecycleOrderProduct> getOrderProductsByOrderIds(List<String> orderIds);
/** /**
* *
* @param * @param

@ -1,6 +1,7 @@
package cc.yunxi.service.impl; package cc.yunxi.service.impl;
import cc.yunxi.common.domain.LambdaQueryWrapperX; import cc.yunxi.common.domain.LambdaQueryWrapperX;
import cc.yunxi.common.utils.CollUtils;
import cc.yunxi.domain.po.PriceProduct; import cc.yunxi.domain.po.PriceProduct;
import cc.yunxi.domain.po.RecycleOrderProduct; import cc.yunxi.domain.po.RecycleOrderProduct;
import cc.yunxi.mapper.RecycleOrderProductMapper; import cc.yunxi.mapper.RecycleOrderProductMapper;
@ -32,10 +33,20 @@ public class RecycleOrderProductServiceImpl extends ServiceImpl<RecycleOrderProd
return recycleOrderProductMapper.getLatestPriceProductByProductId(productId); return recycleOrderProductMapper.getLatestPriceProductByProductId(productId);
} }
@Override
public List<RecycleOrderProduct> getOrderProductsByOrderId(String orderId) {
LambdaQueryWrapperX<RecycleOrderProduct> wrapper = new LambdaQueryWrapperX<>();
wrapper.eq(RecycleOrderProduct::getRecycleOrderId, orderId);
return this.list(wrapper);
}
@Override @Override
public List<RecycleOrderProduct> getOrderProductsByOrderIds(List<String> orderIds) { public List<RecycleOrderProduct> getOrderProductsByOrderIds(List<String> orderIds) {
LambdaQueryWrapperX<RecycleOrderProduct> wrapper = new LambdaQueryWrapperX<>(); LambdaQueryWrapperX<RecycleOrderProduct> wrapper = new LambdaQueryWrapperX<>();
wrapper.inIfPresent(RecycleOrderProduct::getRecycleOrderId, orderIds); if (CollUtils.isEmpty(orderIds)) {
return CollUtils.emptyList();
}
wrapper.in(RecycleOrderProduct::getRecycleOrderId, orderIds);
return this.list(wrapper); return this.list(wrapper);
} }

@ -1,20 +1,21 @@
package cc.yunxi; package cc.yunxi;
import cc.yunxi.common.utils.LambdaUtil;
import cc.yunxi.common.domain.function.SFunction;
import cc.yunxi.domain.dto.UserDTO; import cc.yunxi.domain.dto.UserDTO;
import cc.yunxi.domain.po.Recycler; import cc.yunxi.domain.vo.recycleorder.shorder.SHRecycleOrderRespVO;
import cc.yunxi.enums.UserTypeEnum; import cc.yunxi.service.IRecyclerService;
import cc.yunxi.service.ITestService; import cc.yunxi.service.ITestService;
import cc.yunxi.utils.JwtTool; import cc.yunxi.utils.JwtTool;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.lang.Filter;
import cn.hutool.crypto.digest.DigestUtil; import cn.hutool.core.util.ReflectUtil;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest; import org.springframework.boot.test.context.SpringBootTest;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.time.LocalDateTime; import java.lang.invoke.MethodHandles;
import java.util.List; import java.lang.invoke.MethodType;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.math.BigDecimal;
@SpringBootTest @SpringBootTest
public class NxhsApplicationTest { public class NxhsApplicationTest {
@ -22,6 +23,9 @@ public class NxhsApplicationTest {
@Resource @Resource
ITestService testService; ITestService testService;
@Resource
IRecyclerService recyclerService;
@Resource @Resource
JwtTool jwtTool; JwtTool jwtTool;
@ -50,15 +54,18 @@ public class NxhsApplicationTest {
@Test @Test
void test03() { void test03() {
SFunction<Recycler> recyclerSFunction = Recycler::getGoodTotal; // SFunction<Recycler> recyclerSFunction = Recycler::getGoodTotal;
String fieldName = LambdaUtil.getFieldName(recyclerSFunction); // String fieldName = LambdaUtil.getFieldName(recyclerSFunction);
System.out.println(fieldName); // System.out.println(fieldName);
recyclerService.totalTick("533242995646951684", 1880d, new BigDecimal("5000"));
} }
public static void main(String[] args) { public static void main(String[] args) throws NoSuchMethodException {
// System.out.println(DigestUtil.sha256Hex("123456")); // Filter<Field> fieldFilter = field -> field.getName().startsWith("name") || field.getType().equals(String.class);
// System.out.println(DigestUtil.sha1Hex("123456")); // Field[] fields = ReflectUtil.getFields(SHRecycleOrderRespVO.class, fieldFilter);
// System.out.println(DigestUtil.md5Hex("123456")); // System.out.println(fields.length);
BigDecimal number = new BigDecimal("123.00");
System.out.println(number.stripTrailingZeros().scale() <= 0);
} }
} }

Loading…
Cancel
Save