From 8bec166fa64a30bea1ca5d14fe8b30e1817b8161 Mon Sep 17 00:00:00 2001 From: wuchunlei Date: Mon, 3 Jun 2024 17:03:23 +0800 Subject: [PATCH 1/5] =?UTF-8?q?=E8=AE=A2=E5=8D=95=E8=AF=A6=E6=83=85?= =?UTF-8?q?=E6=96=B0=E5=A2=9E=20=E7=89=A9=E6=B5=81=E8=BF=9B=E5=BA=A6?= =?UTF-8?q?=E6=96=B0=E5=A2=9E=20=E7=94=A8=E6=88=B7=E5=90=88=E5=B9=B6?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../peanut/common/utils/ExpressOrderUtil.java | 139 ++++++++++++++ .../common/controller/BuyOrderController.java | 23 ++- .../common/service/BuyOrderService.java | 5 + .../common/service/ExpressOrderService.java | 6 - .../service/impl/BuyOrderServiceImpl.java | 47 ++++- .../service/impl/ExpressOrderServiceImpl.java | 120 ------------ ...troller.java => UserManageController.java} | 2 +- .../service/impl/UserManageServiceImpl.java | 173 ++++++++++++++++-- 8 files changed, 366 insertions(+), 149 deletions(-) create mode 100644 src/main/java/com/peanut/common/utils/ExpressOrderUtil.java rename src/main/java/com/peanut/modules/master/controller/{UserMergeController.java => UserManageController.java} (97%) diff --git a/src/main/java/com/peanut/common/utils/ExpressOrderUtil.java b/src/main/java/com/peanut/common/utils/ExpressOrderUtil.java new file mode 100644 index 00000000..64e36302 --- /dev/null +++ b/src/main/java/com/peanut/common/utils/ExpressOrderUtil.java @@ -0,0 +1,139 @@ +package com.peanut.common.utils; + +import com.alibaba.fastjson.JSONObject; +import com.peanut.config.Constants; +import com.peanut.modules.common.entity.ExpressCommodity; +import com.peanut.modules.common.entity.ExpressOrder; +import com.peanut.modules.common.entity.ExpressQueryResponse; +import com.peanut.modules.common.vo.*; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Component; + +import java.math.BigDecimal; +import java.util.HashMap; +import java.util.Map; + +//快递工具类 +@Component +public class ExpressOrderUtil { + + @Value("${express.sender.senderName}") + private String senderName; + @Value("${express.sender.mobile}") + private String senderMobile; + @Value("${express.sender.provinceName}") + private String senderProvinceName; + @Value("${express.sender.cityName}") + private String senderCityName; + @Value("${express.sender.expAreaName}") + private String senderExpAreaName; + @Value("${express.sender.address}") + private String senderAddress; + + public ExpressOrderResponseVo placeExpressOrder(ExpressOrder expressOrder) { + ExpressOrderRequestVo orderRequestVo = new ExpressOrderRequestVo(); + // 订单号 + orderRequestVo.setOrderCode(expressOrder.getOrderSn()); + orderRequestVo.setIsReturnPrintTemplate(1); + orderRequestVo.setShipperCode(expressOrder.getExpressCompanyCode()); + orderRequestVo.setPayType(3); + if (expressOrder.getExpressCompanyCode().equals(Constants.EXPRESS_COMPANY_CODE_SF)) { + orderRequestVo.setMonthCode(Constants.EXPRESS_SF_MONTH_CODE); + //如果是顺丰港澳台,参数多两个必填CurrencyCode、Dutiable.DeclaredValue + if ("台湾省".equals(expressOrder.getProvince())|| + "香港特别行政区".equals(expressOrder.getProvince())|| + "澳门特别行政区".equals(expressOrder.getProvince())){ + orderRequestVo.setCurrencyCode("CNY"); + BigDecimal declaredValue = new BigDecimal(0); + if (expressOrder.getCommodity().size()>0){ + for (ExpressCommodity commodity : expressOrder.getCommodity()) { + BigDecimal quantity = BigDecimal.valueOf(commodity.getGoodsquantity()); + BigDecimal price = BigDecimal.valueOf(commodity.getGoodsPrice()); + BigDecimal total = quantity.multiply(price); + declaredValue = declaredValue.add(total); + } + } + DutiableVo dutiable = new DutiableVo(); + dutiable.setDeclaredValue(declaredValue.setScale(3)); + orderRequestVo.setDutiable(dutiable); + } + } + if (expressOrder.getExpressCompanyCode().equals(Constants.EXPRESS_COMPANY_CODE_YD)) { + orderRequestVo.setCustomerName(Constants.EXPRESS_YD_CUSTOMER_NAME); + orderRequestVo.setCustomerPwd(Constants.EXPRESS_YD_CUSTOMER_PWD); + } + orderRequestVo.setExpType(231);//1特快2标快 + orderRequestVo.setCost(expressOrder.getExpressFee().doubleValue()); + // 发货人 + ExpressUserInfoVo sender = new ExpressUserInfoVo(); + sender.setName(senderName); + sender.setMobile(senderMobile); + sender.setProvinceName(senderProvinceName); + sender.setCityName(senderCityName); + sender.setExpAreaName(senderExpAreaName); + sender.setAddress(senderAddress); + // 收货人 + ExpressUserInfoVo receiver = new ExpressUserInfoVo(); + receiver.setName(expressOrder.getConsigneeName()); + receiver.setMobile(expressOrder.getConsigneeMobile()); + receiver.setProvinceName(expressOrder.getProvince()); + receiver.setCityName(expressOrder.getCity()); + receiver.setExpAreaName(expressOrder.getCounty()); + receiver.setAddress(expressOrder.getAddress()); + orderRequestVo.setSender(sender); + orderRequestVo.setReceiver(receiver); + orderRequestVo.setCommodity(expressOrder.getCommodity()); + orderRequestVo.setWeight(expressOrder.getTotalWeight().doubleValue()); + orderRequestVo.setRemark(expressOrder.getRemark()); + orderRequestVo.setTemplateSize("150"); + String requestData = JSONObject.toJSONString(orderRequestVo); + //如果是顺丰港澳台,参数多两个必填CurrencyCode、Dutiable.DeclaredValue,需要大写 + String requestDataUpperCase = requestData; + if (requestData.contains("currencyCode")){ + requestDataUpperCase = requestData.replace("currencyCode","CurrencyCode") + .replace("dutiable","Dutiable") + .replace("declaredValue","DeclaredValue"); + } + + Map params = new HashMap<>(); + params.put("RequestData", requestDataUpperCase); + params.put("EBusinessID", Constants.EXPRESS_BUSINESS_ID); + params.put("RequestType", Constants.EXPRESS_REQUEST_TYPE_PLACE_ORDER); + try { + String dataSign = KdUtils.encrypt(requestDataUpperCase, Constants.EXPRESS_API_KEY, "UTF-8"); + params.put("DataSign", KdUtils.urlEncoder(dataSign, "UTF-8")); + } catch (Exception e) { + e.printStackTrace(); + } + params.put("DataType", "2"); + + String response = HttpClientUtils.kdSendPost(Constants.EXPRESS_PLACE_ORDER_URL, params); + return JSONObject.parseObject(response, ExpressOrderResponseVo.class); + } + + public ExpressQueryResponse queryExpressOrder(ExpressOrder eOrder) { + String logisticCode = eOrder.getExpressOrderSn(); + String tel = eOrder.getConsigneeMobile().substring(eOrder.getConsigneeMobile().length()-4); + String shipperCode = eOrder.getExpressCompanyCode(); + ExpressQueryRequestVo requestVo = new ExpressQueryRequestVo(); + requestVo.setLogisticCode(logisticCode); + requestVo.setCustomerName(tel); + requestVo.setShipperCode(shipperCode); + String requestData = JSONObject.toJSONString(requestVo); + Map params = new HashMap<>(); + params.put("RequestData", requestData); + params.put("EBusinessID", Constants.EXPRESS_BUSINESS_ID); + params.put("RequestType", Constants.EXPRESS_REQUEST_TYPE_QUERY); + try { + String dataSign = KdUtils.encrypt(requestData, Constants.EXPRESS_API_KEY, "UTF-8"); + params.put("DataSign", KdUtils.urlEncoder(dataSign, "UTF-8")); + } catch (Exception e) { + e.printStackTrace(); + } + params.put("DateType", "2"); + String response = HttpClientUtils.kdSendPost(Constants.EXPRESS_QUERY_URL, params); + return JSONObject.parseObject(response, ExpressQueryResponse.class); + } + + +} diff --git a/src/main/java/com/peanut/modules/common/controller/BuyOrderController.java b/src/main/java/com/peanut/modules/common/controller/BuyOrderController.java index ff7af9cc..10043a03 100644 --- a/src/main/java/com/peanut/modules/common/controller/BuyOrderController.java +++ b/src/main/java/com/peanut/modules/common/controller/BuyOrderController.java @@ -1,7 +1,6 @@ package com.peanut.modules.common.controller; import com.peanut.common.utils.R; -import com.peanut.modules.common.entity.BuyOrder; import com.peanut.modules.common.service.BuyOrderService; import com.peanut.modules.common.to.PrepareOrderDto; import lombok.extern.slf4j.Slf4j; @@ -9,7 +8,6 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; -import java.util.List; import java.util.Map; @Slf4j @@ -22,21 +20,30 @@ public class BuyOrderController { @RequestMapping("/initPrepareOrder") public R initPrepareOrder(@RequestBody PrepareOrderDto prepareOrderDto){ - Map stringObjectMap = buyOrderService.initPrepareOrder(prepareOrderDto); - return R.ok().put("data",stringObjectMap); + return R.ok().put("data",buyOrderService.initPrepareOrder(prepareOrderDto)); } //用户订单列表 @RequestMapping("/buyOrderList") public R buyOrderList(@RequestBody Map params){ - List list = buyOrderService.buyOrderList(params); - return R.ok().put("data",list); + return R.ok().put("data",buyOrderService.buyOrderList(params)); } //用户订单各状态下数量 @RequestMapping("/getBuyOrderNumByStatus") public R getBuyOrderNumByStatus(@RequestBody Map params){ - List> list = buyOrderService.getBuyOrderNumByStatus(params); - return R.ok().put("data",list); + return R.ok().put("data",buyOrderService.getBuyOrderNumByStatus(params)); + } + + //订单详情 + @RequestMapping("/commonOrderDetail") + public R commonOrderDetail(@RequestBody Map params){ + return R.ok().put("data",buyOrderService.commonOrderDetail(params)); + } + + //获取快递进度详情 + @RequestMapping("/commonExpressDetail") + public R commonExpressDetail(@RequestBody Map params){ + return R.ok().put("data",buyOrderService.commonExpressDetail(params)); } } diff --git a/src/main/java/com/peanut/modules/common/service/BuyOrderService.java b/src/main/java/com/peanut/modules/common/service/BuyOrderService.java index fdc5fd15..71801c5c 100644 --- a/src/main/java/com/peanut/modules/common/service/BuyOrderService.java +++ b/src/main/java/com/peanut/modules/common/service/BuyOrderService.java @@ -2,6 +2,7 @@ package com.peanut.modules.common.service; import com.baomidou.mybatisplus.extension.service.IService; import com.peanut.modules.common.entity.BuyOrder; +import com.peanut.modules.common.entity.ExpressQueryResponse; import com.peanut.modules.common.to.PrepareOrderDto; import java.util.List; import java.util.Map; @@ -13,4 +14,8 @@ public interface BuyOrderService extends IService { List buyOrderList(Map params); List> getBuyOrderNumByStatus(Map params); + + Map commonOrderDetail(Map params); + + ExpressQueryResponse commonExpressDetail(Map params); } diff --git a/src/main/java/com/peanut/modules/common/service/ExpressOrderService.java b/src/main/java/com/peanut/modules/common/service/ExpressOrderService.java index dc90a94e..fd24d83a 100644 --- a/src/main/java/com/peanut/modules/common/service/ExpressOrderService.java +++ b/src/main/java/com/peanut/modules/common/service/ExpressOrderService.java @@ -6,10 +6,4 @@ import com.peanut.modules.common.entity.ExpressQueryResponse; import com.peanut.modules.common.vo.ExpressOrderResponseVo; public interface ExpressOrderService extends IService { - /** - * 下单生成面单 - */ - ExpressOrderResponseVo placeExpressOrder(ExpressOrder expressOrder); - - ExpressQueryResponse queryExpressOrder(String ShipperCode, String LogisticCode, String customerName); } \ No newline at end of file diff --git a/src/main/java/com/peanut/modules/common/service/impl/BuyOrderServiceImpl.java b/src/main/java/com/peanut/modules/common/service/impl/BuyOrderServiceImpl.java index fcbdba3b..c3aad0ad 100644 --- a/src/main/java/com/peanut/modules/common/service/impl/BuyOrderServiceImpl.java +++ b/src/main/java/com/peanut/modules/common/service/impl/BuyOrderServiceImpl.java @@ -3,6 +3,7 @@ package com.peanut.modules.common.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.github.yulichang.wrapper.MPJLambdaWrapper; +import com.peanut.common.utils.ExpressOrderUtil; import com.peanut.modules.common.dao.*; import com.peanut.modules.common.entity.*; import com.peanut.modules.common.service.BuyOrderService; @@ -24,8 +25,6 @@ public class BuyOrderServiceImpl extends ServiceImpl impl @Autowired private MyUserDao userDao; @Autowired - private BuyOrderDao buyOrderDao; - @Autowired private BuyOrderProductDao buyOrderProductDao; @Autowired private ShopProductDao shopProductDao; @@ -102,7 +101,49 @@ public class BuyOrderServiceImpl extends ServiceImpl impl wrapper.select(BuyOrder::getOrderStatus); wrapper.select("count(1) as num"); wrapper.groupBy(BuyOrder::getOrderStatus); - List> buyOrder = buyOrderDao.selectMaps(wrapper); + List> buyOrder = this.listMaps(wrapper); return buyOrder; } + + @Override + public Map commonOrderDetail(Map params) { + Map res = new HashMap<>(); + LambdaQueryWrapper orderWrapper = new LambdaQueryWrapper<>(); + orderWrapper.eq(BuyOrder::getOrderId,params.get("orderId")); + BuyOrder buyOrder = this.getOne(orderWrapper); + res.put("buyOrder",buyOrder); + if (buyOrder!=null){ + //添加商品信息 + MPJLambdaWrapper buyOrderProductWrapper = new MPJLambdaWrapper<>(); + buyOrderProductWrapper.leftJoin(BuyOrder.class,BuyOrder::getOrderId,BuyOrderProduct::getOrderId); + buyOrderProductWrapper.leftJoin(ShopProduct.class,ShopProduct::getProductId,BuyOrderProduct::getProductId); + buyOrderProductWrapper.select(BuyOrderProduct::getQuantity); + buyOrderProductWrapper.selectAll(ShopProduct.class); + buyOrderProductWrapper.eq(BuyOrder::getOrderId,buyOrder.getOrderId()); + List productInfo = buyOrderProductDao.selectMaps(buyOrderProductWrapper); + res.put("productInfo",productInfo); + //添加快递信息 + LambdaQueryWrapper expressOrderWrapper = new LambdaQueryWrapper<>(); + expressOrderWrapper.like(ExpressOrder::getOrderSn,buyOrder.getOrderSn()); + List expressOrders = expressOrderDao.selectList(expressOrderWrapper); + if (expressOrders != null&&expressOrders.size() > 0) { + for (ExpressOrder eOrder : expressOrders) { + ExpressOrderUtil util = new ExpressOrderUtil(); + ExpressQueryResponse response = util.queryExpressOrder(eOrder); + res.put(eOrder.getExpressOrderSn(),response); + } + } + + } + return res; + } + + @Override + public ExpressQueryResponse commonExpressDetail(Map params) { + LambdaQueryWrapper expressOrderWrapper = new LambdaQueryWrapper<>(); + expressOrderWrapper.eq(ExpressOrder::getExpressOrderSn,params.get("expressOrderSn")); + ExpressOrder expressOrder = expressOrderDao.selectOne(expressOrderWrapper); + ExpressOrderUtil util = new ExpressOrderUtil(); + return util.queryExpressOrder(expressOrder); + } } diff --git a/src/main/java/com/peanut/modules/common/service/impl/ExpressOrderServiceImpl.java b/src/main/java/com/peanut/modules/common/service/impl/ExpressOrderServiceImpl.java index 352ea2ed..597c95cd 100644 --- a/src/main/java/com/peanut/modules/common/service/impl/ExpressOrderServiceImpl.java +++ b/src/main/java/com/peanut/modules/common/service/impl/ExpressOrderServiceImpl.java @@ -22,124 +22,4 @@ import java.util.Map; @Slf4j @Service("commonExpressOrderService") public class ExpressOrderServiceImpl extends ServiceImpl implements ExpressOrderService { - - @Value("${express.sender.senderName}") - private String senderName; - @Value("${express.sender.mobile}") - private String senderMobile; - @Value("${express.sender.provinceName}") - private String senderProvinceName; - @Value("${express.sender.cityName}") - private String senderCityName; - @Value("${express.sender.expAreaName}") - private String senderExpAreaName; - @Value("${express.sender.address}") - private String senderAddress; - - - @Override - public ExpressOrderResponseVo placeExpressOrder(ExpressOrder expressOrder) { - ExpressOrderRequestVo orderRequestVo = new ExpressOrderRequestVo(); - // 订单号 - orderRequestVo.setOrderCode(expressOrder.getOrderSn()); - orderRequestVo.setIsReturnPrintTemplate(1); - orderRequestVo.setShipperCode(expressOrder.getExpressCompanyCode()); - orderRequestVo.setPayType(3); - if (expressOrder.getExpressCompanyCode().equals(Constants.EXPRESS_COMPANY_CODE_SF)) { - orderRequestVo.setMonthCode(Constants.EXPRESS_SF_MONTH_CODE); - //如果是顺丰港澳台,参数多两个必填CurrencyCode、Dutiable.DeclaredValue - if ("台湾省".equals(expressOrder.getProvince())|| - "香港特别行政区".equals(expressOrder.getProvince())|| - "澳门特别行政区".equals(expressOrder.getProvince())){ - orderRequestVo.setCurrencyCode("CNY"); - BigDecimal declaredValue = new BigDecimal(0); - if (expressOrder.getCommodity().size()>0){ - for (ExpressCommodity commodity : expressOrder.getCommodity()) { - BigDecimal quantity = BigDecimal.valueOf(commodity.getGoodsquantity()); - BigDecimal price = BigDecimal.valueOf(commodity.getGoodsPrice()); - BigDecimal total = quantity.multiply(price); - declaredValue = declaredValue.add(total); - } - } - DutiableVo dutiable = new DutiableVo(); - dutiable.setDeclaredValue(declaredValue.setScale(3)); - orderRequestVo.setDutiable(dutiable); - } - } - if (expressOrder.getExpressCompanyCode().equals(Constants.EXPRESS_COMPANY_CODE_YD)) { - orderRequestVo.setCustomerName(Constants.EXPRESS_YD_CUSTOMER_NAME); - orderRequestVo.setCustomerPwd(Constants.EXPRESS_YD_CUSTOMER_PWD); - } - orderRequestVo.setExpType(231);//1特快2标快 - orderRequestVo.setCost(expressOrder.getExpressFee().doubleValue()); - // 发货人 - ExpressUserInfoVo sender = new ExpressUserInfoVo(); - sender.setName(senderName); - sender.setMobile(senderMobile); - sender.setProvinceName(senderProvinceName); - sender.setCityName(senderCityName); - sender.setExpAreaName(senderExpAreaName); - sender.setAddress(senderAddress); - // 收货人 - ExpressUserInfoVo receiver = new ExpressUserInfoVo(); - receiver.setName(expressOrder.getConsigneeName()); - receiver.setMobile(expressOrder.getConsigneeMobile()); - receiver.setProvinceName(expressOrder.getProvince()); - receiver.setCityName(expressOrder.getCity()); - receiver.setExpAreaName(expressOrder.getCounty()); - receiver.setAddress(expressOrder.getAddress()); - orderRequestVo.setSender(sender); - orderRequestVo.setReceiver(receiver); - orderRequestVo.setCommodity(expressOrder.getCommodity()); - orderRequestVo.setWeight(expressOrder.getTotalWeight().doubleValue()); - orderRequestVo.setRemark(expressOrder.getRemark()); - orderRequestVo.setTemplateSize("150"); - String requestData = JSONObject.toJSONString(orderRequestVo); - //如果是顺丰港澳台,参数多两个必填CurrencyCode、Dutiable.DeclaredValue,需要大写 - String requestDataUpperCase = requestData; - if (requestData.contains("currencyCode")){ - requestDataUpperCase = requestData.replace("currencyCode","CurrencyCode") - .replace("dutiable","Dutiable") - .replace("declaredValue","DeclaredValue"); - } - - Map params = new HashMap<>(); - params.put("RequestData", requestDataUpperCase); - params.put("EBusinessID", Constants.EXPRESS_BUSINESS_ID); - params.put("RequestType", Constants.EXPRESS_REQUEST_TYPE_PLACE_ORDER); - try { - String dataSign = KdUtils.encrypt(requestDataUpperCase, Constants.EXPRESS_API_KEY, "UTF-8"); - params.put("DataSign", KdUtils.urlEncoder(dataSign, "UTF-8")); - } catch (Exception e) { - e.printStackTrace(); - log.error(e.getMessage()); - } - params.put("DataType", "2"); - - String response = HttpClientUtils.kdSendPost(Constants.EXPRESS_PLACE_ORDER_URL, params); - return JSONObject.parseObject(response, ExpressOrderResponseVo.class); - } - - @Override - public ExpressQueryResponse queryExpressOrder(String shipperCode, String logisticCode, String customerName) { - ExpressQueryRequestVo requestVo = new ExpressQueryRequestVo(); - requestVo.setLogisticCode(logisticCode); - requestVo.setCustomerName(customerName); - requestVo.setShipperCode(shipperCode); - String requestData = JSONObject.toJSONString(requestVo); - Map params = new HashMap<>(); - params.put("RequestData", requestData); - params.put("EBusinessID", Constants.EXPRESS_BUSINESS_ID); - params.put("RequestType", Constants.EXPRESS_REQUEST_TYPE_QUERY); - try { - String dataSign = KdUtils.encrypt(requestData, Constants.EXPRESS_API_KEY, "UTF-8"); - params.put("DataSign", KdUtils.urlEncoder(dataSign, "UTF-8")); - } catch (Exception e) { - e.printStackTrace(); - log.error(e.getMessage()); - } - params.put("DateType", "2"); - String response = HttpClientUtils.kdSendPost(Constants.EXPRESS_QUERY_URL, params); - return JSONObject.parseObject(response, ExpressQueryResponse.class); - } } diff --git a/src/main/java/com/peanut/modules/master/controller/UserMergeController.java b/src/main/java/com/peanut/modules/master/controller/UserManageController.java similarity index 97% rename from src/main/java/com/peanut/modules/master/controller/UserMergeController.java rename to src/main/java/com/peanut/modules/master/controller/UserManageController.java index 6a8d545a..86a3852d 100644 --- a/src/main/java/com/peanut/modules/master/controller/UserMergeController.java +++ b/src/main/java/com/peanut/modules/master/controller/UserManageController.java @@ -20,7 +20,7 @@ import java.util.Map; @Slf4j @RestController("masterUserManage") @RequestMapping("master/userManage") -public class UserMergeController { +public class UserManageController { @Autowired private UserManageService mergeService; diff --git a/src/main/java/com/peanut/modules/master/service/impl/UserManageServiceImpl.java b/src/main/java/com/peanut/modules/master/service/impl/UserManageServiceImpl.java index 414a563e..4f43a3d3 100644 --- a/src/main/java/com/peanut/modules/master/service/impl/UserManageServiceImpl.java +++ b/src/main/java/com/peanut/modules/master/service/impl/UserManageServiceImpl.java @@ -2,16 +2,11 @@ package com.peanut.modules.master.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.peanut.common.utils.R; -import com.peanut.modules.common.dao.MyUserDao; -import com.peanut.modules.common.dao.UserContributionDao; -import com.peanut.modules.common.dao.UserContributionExchangeDao; -import com.peanut.modules.common.dao.UserCourseBuyDao; -import com.peanut.modules.common.entity.MyUserEntity; -import com.peanut.modules.common.entity.UserContribution; -import com.peanut.modules.common.entity.UserContributionExchange; -import com.peanut.modules.common.entity.UserCourseBuyEntity; +import com.peanut.modules.common.dao.*; +import com.peanut.modules.common.entity.*; import com.peanut.modules.master.service.UserManageService; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.List; @@ -24,11 +19,31 @@ public class UserManageServiceImpl implements UserManageService { @Autowired private MyUserDao userDao; @Autowired + private UserVipDao userVipDao; + @Autowired private UserContributionDao contributionDao; @Autowired private UserContributionExchangeDao exchangeDao; @Autowired private UserCourseBuyDao courseBuyDao; + @Autowired + private UserEbookBuyDao ebookBuyDao; + @Autowired + private UserAddressDao addressDao; + @Autowired + private UserBookClockDao clockDao; + @Autowired + private BuyOrderDao orderDao; + @Autowired + private PayZfbOrderDao zfbOrderDao; + @Autowired + private PayWechatOrderDao wechatOrderDao; + @Autowired + private PayPaymentOrderDao paymentOrderDao; + @Autowired + private TransactionDetailsDao detailsDao; + @Autowired + private JfTransactionDetailsDao jfDetailsDao; @Override public R userMerge(Map params) { @@ -36,10 +51,108 @@ public class UserManageServiceImpl implements UserManageService { MyUserEntity secondUser = userDao.selectById(params.get("secondAccountId").toString()); if (mainUser != null){ if (secondUser!=null){ - //虚拟币、积分 + //币、积分、权限 mainUser.setPeanutCoin(mainUser.getPeanutCoin().add(secondUser.getPeanutCoin())); mainUser.setJf(mainUser.getJf().add(secondUser.getJf())); + if (mainUser.getPointPower()==0){ + mainUser.setPointPower(secondUser.getPointPower()); + } + if (mainUser.getTgdzPower()==0){ + mainUser.setTgdzPower(secondUser.getTgdzPower()); + } + if (mainUser.getWylqPower()==0){ + mainUser.setWylqPower(secondUser.getWylqPower()); + } + if (mainUser.getPrescriptAPower()==0){ + mainUser.setPrescriptAPower(secondUser.getPrescriptAPower()); + } + if (mainUser.getPrescriptBPower()==0){ + mainUser.setPrescriptBPower(secondUser.getPrescriptBPower()); + } userDao.updateById(mainUser); + //删除次用户 + userDao.deleteById(secondUser.getId()); + //vip + //... + //vip记录 + LambdaQueryWrapper userVipWrapper = new LambdaQueryWrapper<>(); +// userVipWrapper.eq(UserVip::getUserId,secondUser.getId()); +// List userVips = userVipDao.selectList(userVipWrapper); +// if (userVips != null&&userVips.size()>0) { +// for (UserVip userVip : userVips) { +// userVip.setUserId(mainUser.getId()); +// userVipDao.updateById(userVip); +// } +// } + //币详情 + LambdaQueryWrapper detailsWrapper = new LambdaQueryWrapper<>(); + detailsWrapper.eq(TransactionDetailsEntity::getUserId,secondUser.getId()); + List details = detailsDao.selectList(detailsWrapper); + if (details != null&&details.size()>0) { + for (TransactionDetailsEntity detail : details) { + detail.setUserId(mainUser.getId()); + detailsDao.updateById(detail); + } + } + //积分详情 + LambdaQueryWrapper jfDetailsWrapper = new LambdaQueryWrapper<>(); + jfDetailsWrapper.eq(JfTransactionDetails::getUserId,secondUser.getId()); + List jfdetails = jfDetailsDao.selectList(jfDetailsWrapper); + if (jfdetails != null&&jfdetails.size()>0) { + for (JfTransactionDetails jfdetail : jfdetails) { + jfdetail.setUserId(mainUser.getId()); + jfDetailsDao.updateById(jfdetail); + } + } + //电子书 + LambdaQueryWrapper ebookWrapper = new LambdaQueryWrapper<>(); + ebookWrapper.eq(UserEbookBuyEntity :: getUserId,secondUser.getId()); + List ebooks = ebookBuyDao.selectList(ebookWrapper); + if (ebooks != null&&ebooks.size()>0) { + for (UserEbookBuyEntity ebookBuyEntity : ebooks) { + LambdaQueryWrapper mainebookWrapper = new LambdaQueryWrapper<>(); + mainebookWrapper.eq(UserEbookBuyEntity::getUserId,mainUser.getId()); + mainebookWrapper.eq(UserEbookBuyEntity::getBookId,ebookBuyEntity.getBookId()); + List mainebooks = ebookBuyDao.selectList(mainebookWrapper); + if (mainebooks != null&&mainebooks.size()==0){ + ebookBuyEntity.setUserId(mainUser.getId()); + ebookBuyDao.updateById(ebookBuyEntity); + } + } + } + //打卡 + LambdaQueryWrapper clockWrapper = new LambdaQueryWrapper<>(); + clockWrapper.eq(UserBookClockEntity::getUserId,secondUser.getId()); + List clocks = clockDao.selectList(clockWrapper); + if (clocks != null&&clocks.size()>0) { + for (UserBookClockEntity clock : clocks) { + LambdaQueryWrapper mainclockWrapper = new LambdaQueryWrapper<>(); + mainclockWrapper.eq(UserBookClockEntity::getUserId,mainUser.getId()); + mainclockWrapper.eq(UserBookClockEntity::getBookId,clock.getBookId()); + List mainclocks = clockDao.selectList(mainclockWrapper); + if (mainclocks != null&&mainclocks.size()>0){ + clockDao.deleteBatchIds(mainclocks); + } + clock.setUserId(mainUser.getId()); + clockDao.updateById(clock); + } + } + //收货地址 + LambdaQueryWrapper addressWrapper = new LambdaQueryWrapper<>(); + addressWrapper.eq(UserAddress::getUserId,secondUser.getId()); + List address = addressDao.selectList(addressWrapper); + if (address != null&&address.size()>0) { + for (UserAddress addr : address) { + LambdaQueryWrapper mainaddressWrapper = new LambdaQueryWrapper<>(); + mainaddressWrapper.eq(UserAddress::getUserId,mainUser.getId()); + List mainebooks = addressDao.selectList(mainaddressWrapper); + if (mainebooks != null&&mainebooks.size()>0){ + addr.setIsDefault(0); + } + addr.setUserId(mainUser.getId()); + addressDao.updateById(addr); + } + } //湖分 LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(UserContribution :: getUserId,secondUser.getId()); @@ -76,8 +189,46 @@ public class UserManageServiceImpl implements UserManageService { courseBuyDao.updateById(c); } } - //删除次用户 - userDao.deleteById(secondUser.getId()); + //订单 + LambdaQueryWrapper orderWrapper = new LambdaQueryWrapper<>(); + orderWrapper.eq(BuyOrder::getUserId,secondUser.getId()); + List orders = orderDao.selectList(orderWrapper); + if (orders != null&&orders.size()>0) { + for (BuyOrder order : orders) { + order.setUserId(mainUser.getId()); + orderDao.updateById(order); + } + } + //支付宝订单 + LambdaQueryWrapper zfbOrderWrapper = new LambdaQueryWrapper<>(); + zfbOrderWrapper.eq(PayZfbOrderEntity::getCustomerid,secondUser.getId()); + List zfbOrders = zfbOrderDao.selectList(zfbOrderWrapper); + if (zfbOrders != null&&zfbOrders.size()>0) { + for (PayZfbOrderEntity zfbOrder : zfbOrders) { + zfbOrder.setCustomerid(mainUser.getId().toString()); + zfbOrderDao.updateById(zfbOrder); + } + } + //微信订单 + LambdaQueryWrapper wechatOrderWrapper = new LambdaQueryWrapper<>(); + wechatOrderWrapper.eq(PayWechatOrderEntity::getCustomerId,secondUser.getId()); + List wechatOrders = wechatOrderDao.selectList(wechatOrderWrapper); + if (wechatOrders != null&&wechatOrders.size()>0) { + for (PayWechatOrderEntity wechatOrder : wechatOrders) { + wechatOrder.setCustomerId(mainUser.getId()); + wechatOrderDao.updateById(wechatOrder); + } + } + //paypaymentorder充值订单表 + LambdaQueryWrapper paymentOrderWrapper = new LambdaQueryWrapper<>(); + paymentOrderWrapper.eq(PayPaymentOrderEntity::getUserId,secondUser.getId()); + List paymentOrders = paymentOrderDao.selectList(paymentOrderWrapper); + if (paymentOrders != null&&paymentOrders.size()>0) { + for (PayPaymentOrderEntity paymentOrder : paymentOrders) { + paymentOrder.setUserId(mainUser.getId()); + paymentOrderDao.updateById(paymentOrder); + } + } }else { return R.error("次账号未找到"); } From a675f9be656bcb845f0865ea57b5ed6dc8d0f007 Mon Sep 17 00:00:00 2001 From: wuchunlei Date: Tue, 4 Jun 2024 10:21:49 +0800 Subject: [PATCH 2/5] =?UTF-8?q?=E6=A0=87=E7=AD=BE=E4=BB=8B=E7=BB=8D?= =?UTF-8?q?=E5=92=8C=E5=AA=92=E4=BD=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/peanut/modules/common/entity/CourseMedicine.java | 4 ++++ .../peanut/modules/common/entity/CourseSociologyEntity.java | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/src/main/java/com/peanut/modules/common/entity/CourseMedicine.java b/src/main/java/com/peanut/modules/common/entity/CourseMedicine.java index 439653f7..db16ad8a 100644 --- a/src/main/java/com/peanut/modules/common/entity/CourseMedicine.java +++ b/src/main/java/com/peanut/modules/common/entity/CourseMedicine.java @@ -25,6 +25,10 @@ public class CourseMedicine { private String icon; + private String content; + + private String media; + private Date createTime; @TableLogic diff --git a/src/main/java/com/peanut/modules/common/entity/CourseSociologyEntity.java b/src/main/java/com/peanut/modules/common/entity/CourseSociologyEntity.java index 044d4ab5..86ef027b 100644 --- a/src/main/java/com/peanut/modules/common/entity/CourseSociologyEntity.java +++ b/src/main/java/com/peanut/modules/common/entity/CourseSociologyEntity.java @@ -24,6 +24,10 @@ public class CourseSociologyEntity { private Integer sort; + private String content; + + private String media; + private Date createTime; @TableLogic From 491bcf332006e88f0018d445834b5e2e3d46ff7f Mon Sep 17 00:00:00 2001 From: wuchunlei Date: Tue, 4 Jun 2024 13:34:27 +0800 Subject: [PATCH 3/5] =?UTF-8?q?=E9=80=9A=E7=94=A8=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E5=88=97=E8=A1=A8=E5=8A=A0=E5=88=86=E9=A1=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modules/common/controller/BuyOrderController.java | 9 ++++++--- .../modules/common/service/BuyOrderService.java | 3 ++- .../common/service/impl/BuyOrderServiceImpl.java | 11 ++++++++--- 3 files changed, 16 insertions(+), 7 deletions(-) diff --git a/src/main/java/com/peanut/modules/common/controller/BuyOrderController.java b/src/main/java/com/peanut/modules/common/controller/BuyOrderController.java index 10043a03..a01eedc4 100644 --- a/src/main/java/com/peanut/modules/common/controller/BuyOrderController.java +++ b/src/main/java/com/peanut/modules/common/controller/BuyOrderController.java @@ -1,6 +1,8 @@ package com.peanut.modules.common.controller; +import com.baomidou.mybatisplus.core.metadata.IPage; import com.peanut.common.utils.R; +import com.peanut.modules.common.entity.BuyOrder; import com.peanut.modules.common.service.BuyOrderService; import com.peanut.modules.common.to.PrepareOrderDto; import lombok.extern.slf4j.Slf4j; @@ -24,9 +26,10 @@ public class BuyOrderController { } //用户订单列表 - @RequestMapping("/buyOrderList") - public R buyOrderList(@RequestBody Map params){ - return R.ok().put("data",buyOrderService.buyOrderList(params)); + @RequestMapping("/commonBuyOrderList") + public R commonBuyOrderList(@RequestBody Map params){ + IPage page = buyOrderService.commonBuyOrderList(params); + return R.ok().put("data",page); } //用户订单各状态下数量 diff --git a/src/main/java/com/peanut/modules/common/service/BuyOrderService.java b/src/main/java/com/peanut/modules/common/service/BuyOrderService.java index 71801c5c..db5ec02c 100644 --- a/src/main/java/com/peanut/modules/common/service/BuyOrderService.java +++ b/src/main/java/com/peanut/modules/common/service/BuyOrderService.java @@ -1,5 +1,6 @@ package com.peanut.modules.common.service; +import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.IService; import com.peanut.modules.common.entity.BuyOrder; import com.peanut.modules.common.entity.ExpressQueryResponse; @@ -11,7 +12,7 @@ public interface BuyOrderService extends IService { Map initPrepareOrder(PrepareOrderDto prepareOrderDto); - List buyOrderList(Map params); + IPage commonBuyOrderList(Map params); List> getBuyOrderNumByStatus(Map params); diff --git a/src/main/java/com/peanut/modules/common/service/impl/BuyOrderServiceImpl.java b/src/main/java/com/peanut/modules/common/service/impl/BuyOrderServiceImpl.java index c3aad0ad..e7c265fb 100644 --- a/src/main/java/com/peanut/modules/common/service/impl/BuyOrderServiceImpl.java +++ b/src/main/java/com/peanut/modules/common/service/impl/BuyOrderServiceImpl.java @@ -1,9 +1,13 @@ package com.peanut.modules.common.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.github.yulichang.wrapper.MPJLambdaWrapper; import com.peanut.common.utils.ExpressOrderUtil; +import com.peanut.common.utils.Query; import com.peanut.modules.common.dao.*; import com.peanut.modules.common.entity.*; import com.peanut.modules.common.service.BuyOrderService; @@ -57,7 +61,7 @@ public class BuyOrderServiceImpl extends ServiceImpl impl } @Override - public List buyOrderList(Map params) { + public IPage commonBuyOrderList(Map params) { LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); wrapper.eq(BuyOrder::getUserId,params.get("userId")); wrapper.eq(BuyOrder::getCome,params.get("come")); @@ -68,7 +72,8 @@ public class BuyOrderServiceImpl extends ServiceImpl impl wrapper.eq(BuyOrder::getOrderStatus,params.get("orderStatus").toString()); } wrapper.orderByDesc(BuyOrder::getCreateTime); - List buyOrderList = this.getBaseMapper().selectList(wrapper); + IPage page = this.page(new Query().getPage(params),wrapper); + List buyOrderList = page.getRecords(); if (buyOrderList.size() > 0){ for(BuyOrder b : buyOrderList){ b.setUser(userDao.selectById(b.getUserId())); @@ -91,7 +96,7 @@ public class BuyOrderServiceImpl extends ServiceImpl impl } } } - return buyOrderList; + return page; } @Override From af2c039b82fa7a9e5be91fa5099b948f871c13dd Mon Sep 17 00:00:00 2001 From: wuchunlei Date: Tue, 4 Jun 2024 15:05:14 +0800 Subject: [PATCH 4/5] =?UTF-8?q?=E8=8E=B7=E5=8F=96=E5=8C=BB=E5=AD=A6?= =?UTF-8?q?=E5=88=86=E7=B1=BB=E6=A0=87=E7=AD=BE=E8=AF=A6=E6=83=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modules/common/service/impl/BuyOrderServiceImpl.java | 1 + .../peanut/modules/medical/controller/HomeController.java | 8 +++++++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/peanut/modules/common/service/impl/BuyOrderServiceImpl.java b/src/main/java/com/peanut/modules/common/service/impl/BuyOrderServiceImpl.java index e7c265fb..ad40836f 100644 --- a/src/main/java/com/peanut/modules/common/service/impl/BuyOrderServiceImpl.java +++ b/src/main/java/com/peanut/modules/common/service/impl/BuyOrderServiceImpl.java @@ -103,6 +103,7 @@ public class BuyOrderServiceImpl extends ServiceImpl impl public List> getBuyOrderNumByStatus(Map params) { MPJLambdaWrapper wrapper = new MPJLambdaWrapper(); wrapper.eq(BuyOrder::getUserId,params.get("userId")); + wrapper.eq(BuyOrder::getCome,params.get("come")); wrapper.select(BuyOrder::getOrderStatus); wrapper.select("count(1) as num"); wrapper.groupBy(BuyOrder::getOrderStatus); diff --git a/src/main/java/com/peanut/modules/medical/controller/HomeController.java b/src/main/java/com/peanut/modules/medical/controller/HomeController.java index 1516aa80..2555961c 100644 --- a/src/main/java/com/peanut/modules/medical/controller/HomeController.java +++ b/src/main/java/com/peanut/modules/medical/controller/HomeController.java @@ -47,13 +47,19 @@ public class HomeController { return R.ok().put("labels",labelsTree); } - //获取医学标签树 + //获取课程分类标签单节点的子分类标签树 @RequestMapping("/getChildCourseMedicalTree") public R getChildCourseMedicalTree(@RequestBody ParamTo param){ List labelsTree = medicalService.getChildCourseMedicalTree(param); return R.ok().put("labels",labelsTree); } + //获取医学分类标签详情 + @RequestMapping("/getCourseMedicalDetail") + public R getCourseMedicalDetail(@RequestBody ParamTo param){ + return R.ok().put("course",medicalService.getById(param.getId())); + } + //获取医学标签下的课程列表 @RequestMapping("/getMedicalCourseList") public R getMedicalCourseList(@RequestBody ParamTo param){ From a842bbb6d646d2d7f13e2833877dd99a8262cabf Mon Sep 17 00:00:00 2001 From: wuchunlei Date: Tue, 4 Jun 2024 15:55:47 +0800 Subject: [PATCH 5/5] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E8=AF=A6=E6=83=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modules/common/service/impl/BuyOrderServiceImpl.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/peanut/modules/common/service/impl/BuyOrderServiceImpl.java b/src/main/java/com/peanut/modules/common/service/impl/BuyOrderServiceImpl.java index ad40836f..27802770 100644 --- a/src/main/java/com/peanut/modules/common/service/impl/BuyOrderServiceImpl.java +++ b/src/main/java/com/peanut/modules/common/service/impl/BuyOrderServiceImpl.java @@ -123,10 +123,10 @@ public class BuyOrderServiceImpl extends ServiceImpl impl MPJLambdaWrapper buyOrderProductWrapper = new MPJLambdaWrapper<>(); buyOrderProductWrapper.leftJoin(BuyOrder.class,BuyOrder::getOrderId,BuyOrderProduct::getOrderId); buyOrderProductWrapper.leftJoin(ShopProduct.class,ShopProduct::getProductId,BuyOrderProduct::getProductId); - buyOrderProductWrapper.select(BuyOrderProduct::getQuantity); + buyOrderProductWrapper.selectAs(BuyOrderProduct::getQuantity,"quantity"); buyOrderProductWrapper.selectAll(ShopProduct.class); buyOrderProductWrapper.eq(BuyOrder::getOrderId,buyOrder.getOrderId()); - List productInfo = buyOrderProductDao.selectMaps(buyOrderProductWrapper); + List productInfo = buyOrderProductDao.selectJoinList(ShopProduct.class,buyOrderProductWrapper); res.put("productInfo",productInfo); //添加快递信息 LambdaQueryWrapper expressOrderWrapper = new LambdaQueryWrapper<>();