Merge remote-tracking branch 'origin/zcc'

This commit is contained in:
wangjinlei
2024-06-04 18:03:51 +08:00
11 changed files with 396 additions and 155 deletions

View File

@@ -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<String, String> 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<String, String> 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);
}
}

View File

@@ -1,5 +1,6 @@
package com.peanut.modules.common.controller; package com.peanut.modules.common.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.peanut.common.utils.R; import com.peanut.common.utils.R;
import com.peanut.modules.common.entity.BuyOrder; import com.peanut.modules.common.entity.BuyOrder;
import com.peanut.modules.common.service.BuyOrderService; import com.peanut.modules.common.service.BuyOrderService;
@@ -9,7 +10,6 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import java.util.List;
import java.util.Map; import java.util.Map;
@Slf4j @Slf4j
@@ -22,21 +22,31 @@ public class BuyOrderController {
@RequestMapping("/initPrepareOrder") @RequestMapping("/initPrepareOrder")
public R initPrepareOrder(@RequestBody PrepareOrderDto prepareOrderDto){ public R initPrepareOrder(@RequestBody PrepareOrderDto prepareOrderDto){
Map<String, Object> stringObjectMap = buyOrderService.initPrepareOrder(prepareOrderDto); return R.ok().put("data",buyOrderService.initPrepareOrder(prepareOrderDto));
return R.ok().put("data",stringObjectMap);
} }
//用户订单列表 //用户订单列表
@RequestMapping("/buyOrderList") @RequestMapping("/commonBuyOrderList")
public R buyOrderList(@RequestBody Map params){ public R commonBuyOrderList(@RequestBody Map params){
List<BuyOrder> list = buyOrderService.buyOrderList(params); IPage<BuyOrder> page = buyOrderService.commonBuyOrderList(params);
return R.ok().put("data",list); return R.ok().put("data",page);
} }
//用户订单各状态下数量 //用户订单各状态下数量
@RequestMapping("/getBuyOrderNumByStatus") @RequestMapping("/getBuyOrderNumByStatus")
public R getBuyOrderNumByStatus(@RequestBody Map params){ public R getBuyOrderNumByStatus(@RequestBody Map params){
List<Map<String,Object>> list = buyOrderService.getBuyOrderNumByStatus(params); return R.ok().put("data",buyOrderService.getBuyOrderNumByStatus(params));
return R.ok().put("data",list); }
//订单详情
@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));
} }
} }

View File

@@ -25,6 +25,10 @@ public class CourseMedicine {
private String icon; private String icon;
private String content;
private String media;
private Date createTime; private Date createTime;
@TableLogic @TableLogic

View File

@@ -24,6 +24,10 @@ public class CourseSociologyEntity {
private Integer sort; private Integer sort;
private String content;
private String media;
private Date createTime; private Date createTime;
@TableLogic @TableLogic

View File

@@ -1,7 +1,9 @@
package com.peanut.modules.common.service; package com.peanut.modules.common.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.peanut.modules.common.entity.BuyOrder; import com.peanut.modules.common.entity.BuyOrder;
import com.peanut.modules.common.entity.ExpressQueryResponse;
import com.peanut.modules.common.to.PrepareOrderDto; import com.peanut.modules.common.to.PrepareOrderDto;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@@ -10,7 +12,11 @@ public interface BuyOrderService extends IService<BuyOrder> {
Map<String,Object> initPrepareOrder(PrepareOrderDto prepareOrderDto); Map<String,Object> initPrepareOrder(PrepareOrderDto prepareOrderDto);
List<BuyOrder> buyOrderList(Map params); IPage<BuyOrder> commonBuyOrderList(Map params);
List<Map<String,Object>> getBuyOrderNumByStatus(Map params); List<Map<String,Object>> getBuyOrderNumByStatus(Map params);
Map<String,Object> commonOrderDetail(Map params);
ExpressQueryResponse commonExpressDetail(Map params);
} }

View File

@@ -6,10 +6,4 @@ import com.peanut.modules.common.entity.ExpressQueryResponse;
import com.peanut.modules.common.vo.ExpressOrderResponseVo; import com.peanut.modules.common.vo.ExpressOrderResponseVo;
public interface ExpressOrderService extends IService<ExpressOrder> { public interface ExpressOrderService extends IService<ExpressOrder> {
/**
* 下单生成面单
*/
ExpressOrderResponseVo placeExpressOrder(ExpressOrder expressOrder);
ExpressQueryResponse queryExpressOrder(String ShipperCode, String LogisticCode, String customerName);
} }

View File

@@ -1,8 +1,13 @@
package com.peanut.modules.common.service.impl; package com.peanut.modules.common.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; 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.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.github.yulichang.wrapper.MPJLambdaWrapper; 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.dao.*;
import com.peanut.modules.common.entity.*; import com.peanut.modules.common.entity.*;
import com.peanut.modules.common.service.BuyOrderService; import com.peanut.modules.common.service.BuyOrderService;
@@ -24,8 +29,6 @@ public class BuyOrderServiceImpl extends ServiceImpl<BuyOrderDao, BuyOrder> impl
@Autowired @Autowired
private MyUserDao userDao; private MyUserDao userDao;
@Autowired @Autowired
private BuyOrderDao buyOrderDao;
@Autowired
private BuyOrderProductDao buyOrderProductDao; private BuyOrderProductDao buyOrderProductDao;
@Autowired @Autowired
private ShopProductDao shopProductDao; private ShopProductDao shopProductDao;
@@ -58,7 +61,7 @@ public class BuyOrderServiceImpl extends ServiceImpl<BuyOrderDao, BuyOrder> impl
} }
@Override @Override
public List<BuyOrder> buyOrderList(Map params) { public IPage<BuyOrder> commonBuyOrderList(Map params) {
LambdaQueryWrapper<BuyOrder> wrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<BuyOrder> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(BuyOrder::getUserId,params.get("userId")); wrapper.eq(BuyOrder::getUserId,params.get("userId"));
wrapper.eq(BuyOrder::getCome,params.get("come")); wrapper.eq(BuyOrder::getCome,params.get("come"));
@@ -69,7 +72,8 @@ public class BuyOrderServiceImpl extends ServiceImpl<BuyOrderDao, BuyOrder> impl
wrapper.eq(BuyOrder::getOrderStatus,params.get("orderStatus").toString()); wrapper.eq(BuyOrder::getOrderStatus,params.get("orderStatus").toString());
} }
wrapper.orderByDesc(BuyOrder::getCreateTime); wrapper.orderByDesc(BuyOrder::getCreateTime);
List<BuyOrder> buyOrderList = this.getBaseMapper().selectList(wrapper); IPage<BuyOrder> page = this.page(new Query<BuyOrder>().getPage(params),wrapper);
List<BuyOrder> buyOrderList = page.getRecords();
if (buyOrderList.size() > 0){ if (buyOrderList.size() > 0){
for(BuyOrder b : buyOrderList){ for(BuyOrder b : buyOrderList){
b.setUser(userDao.selectById(b.getUserId())); b.setUser(userDao.selectById(b.getUserId()));
@@ -92,17 +96,60 @@ public class BuyOrderServiceImpl extends ServiceImpl<BuyOrderDao, BuyOrder> impl
} }
} }
} }
return buyOrderList; return page;
} }
@Override @Override
public List<Map<String,Object>> getBuyOrderNumByStatus(Map params) { public List<Map<String,Object>> getBuyOrderNumByStatus(Map params) {
MPJLambdaWrapper<BuyOrder> wrapper = new MPJLambdaWrapper<BuyOrder>(); MPJLambdaWrapper<BuyOrder> wrapper = new MPJLambdaWrapper<BuyOrder>();
wrapper.eq(BuyOrder::getUserId,params.get("userId")); wrapper.eq(BuyOrder::getUserId,params.get("userId"));
wrapper.eq(BuyOrder::getCome,params.get("come"));
wrapper.select(BuyOrder::getOrderStatus); wrapper.select(BuyOrder::getOrderStatus);
wrapper.select("count(1) as num"); wrapper.select("count(1) as num");
wrapper.groupBy(BuyOrder::getOrderStatus); wrapper.groupBy(BuyOrder::getOrderStatus);
List<Map<String,Object>> buyOrder = buyOrderDao.selectMaps(wrapper); List<Map<String,Object>> buyOrder = this.listMaps(wrapper);
return buyOrder; return buyOrder;
} }
@Override
public Map<String, Object> commonOrderDetail(Map params) {
Map<String, Object> res = new HashMap<>();
LambdaQueryWrapper<BuyOrder> orderWrapper = new LambdaQueryWrapper<>();
orderWrapper.eq(BuyOrder::getOrderId,params.get("orderId"));
BuyOrder buyOrder = this.getOne(orderWrapper);
res.put("buyOrder",buyOrder);
if (buyOrder!=null){
//添加商品信息
MPJLambdaWrapper<BuyOrderProduct> buyOrderProductWrapper = new MPJLambdaWrapper<>();
buyOrderProductWrapper.leftJoin(BuyOrder.class,BuyOrder::getOrderId,BuyOrderProduct::getOrderId);
buyOrderProductWrapper.leftJoin(ShopProduct.class,ShopProduct::getProductId,BuyOrderProduct::getProductId);
buyOrderProductWrapper.selectAs(BuyOrderProduct::getQuantity,"quantity");
buyOrderProductWrapper.selectAll(ShopProduct.class);
buyOrderProductWrapper.eq(BuyOrder::getOrderId,buyOrder.getOrderId());
List<ShopProduct> productInfo = buyOrderProductDao.selectJoinList(ShopProduct.class,buyOrderProductWrapper);
res.put("productInfo",productInfo);
//添加快递信息
LambdaQueryWrapper<ExpressOrder> expressOrderWrapper = new LambdaQueryWrapper<>();
expressOrderWrapper.like(ExpressOrder::getOrderSn,buyOrder.getOrderSn());
List<ExpressOrder> 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<ExpressOrder> expressOrderWrapper = new LambdaQueryWrapper<>();
expressOrderWrapper.eq(ExpressOrder::getExpressOrderSn,params.get("expressOrderSn"));
ExpressOrder expressOrder = expressOrderDao.selectOne(expressOrderWrapper);
ExpressOrderUtil util = new ExpressOrderUtil();
return util.queryExpressOrder(expressOrder);
}
} }

View File

@@ -22,124 +22,4 @@ import java.util.Map;
@Slf4j @Slf4j
@Service("commonExpressOrderService") @Service("commonExpressOrderService")
public class ExpressOrderServiceImpl extends ServiceImpl<ExpressOrderDao, ExpressOrder> implements ExpressOrderService { public class ExpressOrderServiceImpl extends ServiceImpl<ExpressOrderDao, ExpressOrder> 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<String, String> 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<String, String> 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);
}
} }

View File

@@ -20,7 +20,7 @@ import java.util.Map;
@Slf4j @Slf4j
@RestController("masterUserManage") @RestController("masterUserManage")
@RequestMapping("master/userManage") @RequestMapping("master/userManage")
public class UserMergeController { public class UserManageController {
@Autowired @Autowired
private UserManageService mergeService; private UserManageService mergeService;

View File

@@ -2,16 +2,11 @@ package com.peanut.modules.master.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.peanut.common.utils.R; import com.peanut.common.utils.R;
import com.peanut.modules.common.dao.MyUserDao; import com.peanut.modules.common.dao.*;
import com.peanut.modules.common.dao.UserContributionDao; import com.peanut.modules.common.entity.*;
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.master.service.UserManageService; import com.peanut.modules.master.service.UserManageService;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.List; import java.util.List;
@@ -24,11 +19,31 @@ public class UserManageServiceImpl implements UserManageService {
@Autowired @Autowired
private MyUserDao userDao; private MyUserDao userDao;
@Autowired @Autowired
private UserVipDao userVipDao;
@Autowired
private UserContributionDao contributionDao; private UserContributionDao contributionDao;
@Autowired @Autowired
private UserContributionExchangeDao exchangeDao; private UserContributionExchangeDao exchangeDao;
@Autowired @Autowired
private UserCourseBuyDao courseBuyDao; 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 @Override
public R userMerge(Map<String, Object> params) { public R userMerge(Map<String, Object> params) {
@@ -36,10 +51,108 @@ public class UserManageServiceImpl implements UserManageService {
MyUserEntity secondUser = userDao.selectById(params.get("secondAccountId").toString()); MyUserEntity secondUser = userDao.selectById(params.get("secondAccountId").toString());
if (mainUser != null){ if (mainUser != null){
if (secondUser!=null){ if (secondUser!=null){
//虚拟币、积分 //币、积分、权限
mainUser.setPeanutCoin(mainUser.getPeanutCoin().add(secondUser.getPeanutCoin())); mainUser.setPeanutCoin(mainUser.getPeanutCoin().add(secondUser.getPeanutCoin()));
mainUser.setJf(mainUser.getJf().add(secondUser.getJf())); 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.updateById(mainUser);
//删除次用户
userDao.deleteById(secondUser.getId());
//vip
//...
//vip记录
LambdaQueryWrapper<UserVip> userVipWrapper = new LambdaQueryWrapper<>();
// userVipWrapper.eq(UserVip::getUserId,secondUser.getId());
// List<UserVip> userVips = userVipDao.selectList(userVipWrapper);
// if (userVips != null&&userVips.size()>0) {
// for (UserVip userVip : userVips) {
// userVip.setUserId(mainUser.getId());
// userVipDao.updateById(userVip);
// }
// }
//币详情
LambdaQueryWrapper<TransactionDetailsEntity> detailsWrapper = new LambdaQueryWrapper<>();
detailsWrapper.eq(TransactionDetailsEntity::getUserId,secondUser.getId());
List<TransactionDetailsEntity> details = detailsDao.selectList(detailsWrapper);
if (details != null&&details.size()>0) {
for (TransactionDetailsEntity detail : details) {
detail.setUserId(mainUser.getId());
detailsDao.updateById(detail);
}
}
//积分详情
LambdaQueryWrapper<JfTransactionDetails> jfDetailsWrapper = new LambdaQueryWrapper<>();
jfDetailsWrapper.eq(JfTransactionDetails::getUserId,secondUser.getId());
List<JfTransactionDetails> jfdetails = jfDetailsDao.selectList(jfDetailsWrapper);
if (jfdetails != null&&jfdetails.size()>0) {
for (JfTransactionDetails jfdetail : jfdetails) {
jfdetail.setUserId(mainUser.getId());
jfDetailsDao.updateById(jfdetail);
}
}
//电子书
LambdaQueryWrapper<UserEbookBuyEntity> ebookWrapper = new LambdaQueryWrapper<>();
ebookWrapper.eq(UserEbookBuyEntity :: getUserId,secondUser.getId());
List<UserEbookBuyEntity> ebooks = ebookBuyDao.selectList(ebookWrapper);
if (ebooks != null&&ebooks.size()>0) {
for (UserEbookBuyEntity ebookBuyEntity : ebooks) {
LambdaQueryWrapper<UserEbookBuyEntity> mainebookWrapper = new LambdaQueryWrapper<>();
mainebookWrapper.eq(UserEbookBuyEntity::getUserId,mainUser.getId());
mainebookWrapper.eq(UserEbookBuyEntity::getBookId,ebookBuyEntity.getBookId());
List<UserEbookBuyEntity> mainebooks = ebookBuyDao.selectList(mainebookWrapper);
if (mainebooks != null&&mainebooks.size()==0){
ebookBuyEntity.setUserId(mainUser.getId());
ebookBuyDao.updateById(ebookBuyEntity);
}
}
}
//打卡
LambdaQueryWrapper<UserBookClockEntity> clockWrapper = new LambdaQueryWrapper<>();
clockWrapper.eq(UserBookClockEntity::getUserId,secondUser.getId());
List<UserBookClockEntity> clocks = clockDao.selectList(clockWrapper);
if (clocks != null&&clocks.size()>0) {
for (UserBookClockEntity clock : clocks) {
LambdaQueryWrapper<UserBookClockEntity> mainclockWrapper = new LambdaQueryWrapper<>();
mainclockWrapper.eq(UserBookClockEntity::getUserId,mainUser.getId());
mainclockWrapper.eq(UserBookClockEntity::getBookId,clock.getBookId());
List<UserBookClockEntity> mainclocks = clockDao.selectList(mainclockWrapper);
if (mainclocks != null&&mainclocks.size()>0){
clockDao.deleteBatchIds(mainclocks);
}
clock.setUserId(mainUser.getId());
clockDao.updateById(clock);
}
}
//收货地址
LambdaQueryWrapper<UserAddress> addressWrapper = new LambdaQueryWrapper<>();
addressWrapper.eq(UserAddress::getUserId,secondUser.getId());
List<UserAddress> address = addressDao.selectList(addressWrapper);
if (address != null&&address.size()>0) {
for (UserAddress addr : address) {
LambdaQueryWrapper<UserAddress> mainaddressWrapper = new LambdaQueryWrapper<>();
mainaddressWrapper.eq(UserAddress::getUserId,mainUser.getId());
List<UserAddress> mainebooks = addressDao.selectList(mainaddressWrapper);
if (mainebooks != null&&mainebooks.size()>0){
addr.setIsDefault(0);
}
addr.setUserId(mainUser.getId());
addressDao.updateById(addr);
}
}
//湖分 //湖分
LambdaQueryWrapper<UserContribution> queryWrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<UserContribution> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(UserContribution :: getUserId,secondUser.getId()); queryWrapper.eq(UserContribution :: getUserId,secondUser.getId());
@@ -76,8 +189,46 @@ public class UserManageServiceImpl implements UserManageService {
courseBuyDao.updateById(c); courseBuyDao.updateById(c);
} }
} }
//删除次用户 //订单
userDao.deleteById(secondUser.getId()); LambdaQueryWrapper<BuyOrder> orderWrapper = new LambdaQueryWrapper<>();
orderWrapper.eq(BuyOrder::getUserId,secondUser.getId());
List<BuyOrder> orders = orderDao.selectList(orderWrapper);
if (orders != null&&orders.size()>0) {
for (BuyOrder order : orders) {
order.setUserId(mainUser.getId());
orderDao.updateById(order);
}
}
//支付宝订单
LambdaQueryWrapper<PayZfbOrderEntity> zfbOrderWrapper = new LambdaQueryWrapper<>();
zfbOrderWrapper.eq(PayZfbOrderEntity::getCustomerid,secondUser.getId());
List<PayZfbOrderEntity> zfbOrders = zfbOrderDao.selectList(zfbOrderWrapper);
if (zfbOrders != null&&zfbOrders.size()>0) {
for (PayZfbOrderEntity zfbOrder : zfbOrders) {
zfbOrder.setCustomerid(mainUser.getId().toString());
zfbOrderDao.updateById(zfbOrder);
}
}
//微信订单
LambdaQueryWrapper<PayWechatOrderEntity> wechatOrderWrapper = new LambdaQueryWrapper<>();
wechatOrderWrapper.eq(PayWechatOrderEntity::getCustomerId,secondUser.getId());
List<PayWechatOrderEntity> wechatOrders = wechatOrderDao.selectList(wechatOrderWrapper);
if (wechatOrders != null&&wechatOrders.size()>0) {
for (PayWechatOrderEntity wechatOrder : wechatOrders) {
wechatOrder.setCustomerId(mainUser.getId());
wechatOrderDao.updateById(wechatOrder);
}
}
//paypaymentorder充值订单表
LambdaQueryWrapper<PayPaymentOrderEntity> paymentOrderWrapper = new LambdaQueryWrapper<>();
paymentOrderWrapper.eq(PayPaymentOrderEntity::getUserId,secondUser.getId());
List<PayPaymentOrderEntity> paymentOrders = paymentOrderDao.selectList(paymentOrderWrapper);
if (paymentOrders != null&&paymentOrders.size()>0) {
for (PayPaymentOrderEntity paymentOrder : paymentOrders) {
paymentOrder.setUserId(mainUser.getId());
paymentOrderDao.updateById(paymentOrder);
}
}
}else { }else {
return R.error("次账号未找到"); return R.error("次账号未找到");
} }

View File

@@ -47,13 +47,19 @@ public class HomeController {
return R.ok().put("labels",labelsTree); return R.ok().put("labels",labelsTree);
} }
//获取医学标签树 //获取课程分类标签单节点的子分类标签树
@RequestMapping("/getChildCourseMedicalTree") @RequestMapping("/getChildCourseMedicalTree")
public R getChildCourseMedicalTree(@RequestBody ParamTo param){ public R getChildCourseMedicalTree(@RequestBody ParamTo param){
List<CourseMedicine> labelsTree = medicalService.getChildCourseMedicalTree(param); List<CourseMedicine> labelsTree = medicalService.getChildCourseMedicalTree(param);
return R.ok().put("labels",labelsTree); 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") @RequestMapping("/getMedicalCourseList")
public R getMedicalCourseList(@RequestBody ParamTo param){ public R getMedicalCourseList(@RequestBody ParamTo param){