获取订单中商品名

This commit is contained in:
liupopo
2024-02-04 09:43:01 +08:00
parent cfa54f80b6
commit 729c4ae694
8 changed files with 475 additions and 169 deletions

View File

@@ -68,6 +68,35 @@ WHERE (cardtype=0 OR cardtype=1)
AND vr.createTime>='2024-01-30' AND vr.createTime<'2024-01-31';
-- 预约提货信息
select
date_format(vo.reserveDate,'%Y-%m-%d') 预约日期,
vo.customerSid 客户SID,
lc.wxMpOpenid 微信OpenID,
vo.storeSid 提货点SID,
max(ls.name) 提货点名称,
max(ls.linker) 提货点联系人,
max(ls.phone) 提货点联系电话,
max(ls.address) 提货点地址,
max(vo.affiliation) 菜窖类别编号,
max(pb.name) 菜窖类别,
max(vo.userName) 提货人名,
max(vo.userPhone) 提货电话,
max(lb.sid) 支行SID,
max(lb.name) 支行名,
max(lb.linker) 支行联系人,
max(lb.linkPhone) 支行电话,
max(lb.address) 支行地址,
max(lcb.name) 客户所属支行
from vege_cellar_reserve_order vo
LEFT JOIN lpk_store ls ON ls.sid=vo.storeSid
LEFT JOIN lpk_bank lb ON lb.sid=ls.bankSid
left join pms_brand pb on pb.id=vo.affiliation
LEFT JOIN lpk_customer lc ON lc.sid=vo.customerSid
LEFT JOIN lpk_customer_bank lcb ON lcb.sid = lc.customerBankSid
WHERE vo.reserveDate>='2024-01-30' AND vo.reserveDate<'2024-01-31'
GROUP BY vo.reserveDate,vo.storeSid,vo.customerSid ;
-- 预约提货信息含商品
select
date_format(vo.reserveDate,'%Y-%m-%d') 预约日期,
vo.customerSid 客户SID,
@@ -99,3 +128,93 @@ LEFT JOIN lpk_customer lc ON lc.sid=vo.customerSid
LEFT JOIN lpk_customer_bank lcb ON lcb.sid = lc.customerBankSid
WHERE vo.reserveDate>='2024-01-30' AND vo.reserveDate<'2024-01-31'
GROUP BY vo.reserveDate,vo.storeSid,vo.customerSid,vd.goodsSid ;
-- 微信用户数-日
SELECT
COUNT(1) 日增加微信用户数
FROM lpk_customer lc
WHERE lc.createTime>='2024-01-30' AND lc.createTime<'2024-01-31'
-- 微信用户数-累计
SELECT
COUNT(1) 微信用户总数
FROM lpk_customer lc
-- 购买人数-日 指定日期线上下单加上绑定个人卡和企业卡的用户数(同一用户记一条)
SELECT COUNT(1) FROM (
SELECT
oo.openId openid
FROM ord_order oo
WHERE oo.payStatus=4 AND oo.payTime>='2024-01-30' AND oo.payTime<'2024-01-31'
UNION
SELECT
lc.wxMpOpenid openid
FROM emp_card ec
LEFT JOIN lpk_customer lc ON lc.sid = ec.customerSid
WHERE ec.customerSid IS NOT NULL AND ec.customerSid <> ''
AND ec.bindDate>='2024-01-30' AND ec.bindDate<'2024-01-31'
UNION
SELECT
lc.wxMpOpenid openid
FROM lpk_giftcard lg
LEFT JOIN lpk_customer lc ON lc.sid = lg.customerSid
WHERE lg.customerSid IS NOT NULL AND lg.customerSid <> ''
AND lg.bindDate>='2024-01-30' AND lg.bindDate<'2024-01-31'
) t1
-- 购买人数-累计 线上下单加上绑定个人卡和企业卡的用户数(同一用户记一条) 2433
SELECT COUNT(1) FROM (
SELECT
oo.openId openid
FROM ord_order oo
UNION
SELECT
lc.wxMpOpenid openid
FROM emp_card ec
LEFT JOIN lpk_customer lc ON lc.sid = ec.customerSid
WHERE ec.customerSid IS NOT NULL AND ec.customerSid <> ''
UNION
SELECT
lc.wxMpOpenid openid
FROM lpk_giftcard lg
LEFT JOIN lpk_customer lc ON lc.sid = lg.customerSid
WHERE lg.customerSid IS NOT NULL AND lg.customerSid <> ''
) t1
-- 复购用户数-累计
SELECT COUNT(1) FROM (
SELECT openid,COUNT(1) num FROM (
SELECT
oo.openId openid
FROM ord_order oo
UNION ALL
SELECT
lc.wxMpOpenid openid
FROM emp_card ec
LEFT JOIN lpk_customer lc ON lc.sid = ec.customerSid
WHERE ec.customerSid IS NOT NULL AND ec.customerSid <> ''
UNION ALL
SELECT
lc.wxMpOpenid openid
FROM lpk_giftcard lg
LEFT JOIN lpk_customer lc ON lc.sid = lg.customerSid
WHERE lg.customerSid IS NOT NULL AND lg.customerSid <> ''
) t GROUP BY openid
) tt WHERE tt.num>1
-- 两次以上提货用户数-累计
SELECT COUNT(1) FROM (
SELECT openid,COUNT(1) num FROM (
SELECT
lc.wxMpOpenid openid
FROM lpk_reserve_order lro
LEFT JOIN lpk_customer lc ON lc.sid = lro.customerSid
UNION ALL
SELECT
lc.wxMpOpenid openid
FROM vege_cellar_reserve_order vcro
LEFT JOIN lpk_customer lc ON lc.sid = vcro.customerSid
) t GROUP BY t.openid
) tt WHERE tt.num>1

View File

@@ -0,0 +1,24 @@
package com.yxt.yythmall.adminapi;
import com.yxt.common.core.result.ResultBean;
import com.yxt.yythmall.adminapi.ordertools.OrdertoolsService;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
@RestController("com.yxt.yythmall.adminapi.OrdertoolsRest")
@RequestMapping("/adminapi/ordertools")
public class OrdertoolsRest {
@Autowired
private OrdertoolsService ordertoolsService;
@ApiOperation("上传和导出")
@PostMapping("/uploadExcelFile")
public ResultBean uploadExcelFile(@RequestParam("file") MultipartFile file) {
ResultBean rb = ResultBean.fireFail();
String fileUrl = ordertoolsService.uploadAndResetData(file);
return rb.success().setData(fileUrl);
}
}

View File

@@ -0,0 +1,71 @@
package com.yxt.yythmall.adminapi.ordertools;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.util.StrUtil;
import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.context.AnalysisContext;
import com.alibaba.excel.read.builder.ExcelReaderBuilder;
import com.alibaba.excel.read.listener.ReadListener;
import com.yxt.common.base.config.component.FileUploadComponent;
import com.yxt.common.core.result.FileUploadResult;
import com.yxt.common.core.result.ResultBean;
import com.yxt.yythmall.biz.ordorder.OrdOrderService;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
import java.util.ArrayList;
import java.util.List;
@Service
public class OrdertoolsService {
@Autowired
private FileUploadComponent fileUploadComponent;
@Autowired
private OrdOrderService ordOrderService;
public String uploadAndResetData(MultipartFile file) {
ResultBean<FileUploadResult> fub = fileUploadComponent.uploadFile(file, "zfdd");
String filePath = fub.getData().getFilePath();
String fp = fileUploadComponent.getUploadPath() + filePath;
String outFilePath = "/zfdd/fhd" + System.currentTimeMillis() + ".xlsx";
String outFileName = fileUploadComponent.getUploadPath() + outFilePath;
String outFileUrl = fileUploadComponent.getUrlPrefix() + outFilePath;
List<WxOrderIn> inList = new ArrayList<>();
ExcelReaderBuilder read = EasyExcel.read(fp, WxOrderIn.class, createReadListener(inList));
List<ToImportOrderExcel> toList = new ArrayList<>();
inList.forEach(inObj -> {
ToImportOrderExcel toObj = new ToImportOrderExcel();
toObj.setTranOrderNo(inObj.getTranOrderNo());
toObj.setMerchantOrderNo(inObj.getMerchantOrderNo());
toObj.setMerchantNo(inObj.getMerchantNo());
toObj.setGoodsNames(ordOrderService.orderGoodsNames(inObj.getMerchantOrderNo()));
toList.add(toObj);
});
// ArrayList EasyExcel.write(response.getOutputStream(), ReserveCustomerExcel.class).sheet("预约单明细").doWrite(list);
read.sheet().doRead();
return "";
}
private ReadListener<WxOrderIn> createReadListener(List<WxOrderIn> inList) {
return new ReadListener<WxOrderIn>() {
@Override
public void invoke(WxOrderIn obj, AnalysisContext analysisContext) {
inList.add(obj);
}
@Override
public void doAfterAllAnalysed(AnalysisContext analysisContext) {
}
};
}
}

View File

@@ -0,0 +1,44 @@
package com.yxt.yythmall.adminapi.ordertools;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.Setter;
@Getter
@Setter
@EqualsAndHashCode
public class ToImportOrderExcel {
@ColumnWidth(20)
@ExcelProperty(value = "交易单号",index = 0)
private String tranOrderNo; // 交易单号
@ColumnWidth(20)
@ExcelProperty(value = "商户单号",index = 1)
private String merchantOrderNo; // 商户单号
@ColumnWidth(20)
@ExcelProperty(value = "商户号",index = 2)
private String merchantNo;// 商户号
@ColumnWidth(20)
@ExcelProperty(value = "发货方式",index = 3)
private String modeOfDespatch = "用户自提";// 发货方式
@ColumnWidth(20)
@ExcelProperty(value = "发货模式",index = 4)
private String deliveryMode = "统一发货";// 发货模式
@ColumnWidth(20)
@ExcelProperty(value = "快递公司",index = 5)
private String kdgs = ""; // 快递公司
@ColumnWidth(20)
@ExcelProperty(value = "快递单号(多个快递单使用;分隔)",index = 6)
private String kddh = ""; // 快递单号(多个快递单使用;分隔)
@ColumnWidth(20)
@ExcelProperty(value = "是否完成发货",index = 7)
private String sfwcfh = ""; // 是否完成发货
@ColumnWidth(20)
@ExcelProperty(value = "是否重新发货",index = 8)
private String sfcxfh = ""; // 是否重新发货
@ColumnWidth(20)
@ExcelProperty(value = "商品信息",index = 9)
private String goodsNames; // 商品信息
}

View File

@@ -0,0 +1,12 @@
package com.yxt.yythmall.adminapi.ordertools;
import lombok.Data;
@Data
public class WxOrderIn {
private String tranTime; // 支付时间
private String tranOrderNo; // 交易单号
private String merchantOrderNo; // 商户单号
private String merchantNo;// 商户号
private String status; // 状态
}

View File

@@ -0,0 +1,9 @@
package com.yxt.yythmall.biz.ordorder;
import lombok.Data;
@Data
public class OrdOrderGoodsItem {
private String goodsName;
private int goodsNumber;
}

View File

@@ -10,6 +10,7 @@ import com.yxt.yythmall.api.ordorder.OrdOrder;
import com.yxt.yythmall.api.ordorder.OrdOrderVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import java.util.List;
@@ -22,4 +23,11 @@ public interface OrdOrderMapper extends BaseMapper<OrdOrder> {
IPage<OrdOrderVo> orderList(IPage<OrdOrder> page, @Param(Constants.WRAPPER) QueryWrapper<OrdOrder> qw);
OrdOrderVo getOrderDetails(@Param("sid")String sid);
@Select("SELECT " +
" ood.goodsName goodsName, " +
" ood.partNumber goodsNumber " +
"FROM ord_order oo " +
"LEFT JOIN ord_order_detail ood ON ood.orderSid=oo.sid " +
"WHERE oo.payStatus=4 AND oo.outTradeNo=#{tradeNo}")
List<OrdOrderGoodsItem> listGoodsInfoByOutTradeNo(@Param("tradeNo") String outTradeNo);
}

View File

@@ -276,6 +276,7 @@ public class OrdOrderService extends MybatisBaseService<OrdOrderMapper, OrdOrder
lpkCustomerService.updateById(customer);
return rb.success().setData(result);
}
@Transactional(rollbackFor = Exception.class)
public ResultBean createNewUserBagOrder(OrdOrderDto dto) {
ResultBean rb = ResultBean.fireFail();
@@ -384,6 +385,7 @@ public class OrdOrderService extends MybatisBaseService<OrdOrderMapper, OrdOrder
lpkCustomerService.updateById(customer);
return rb.success().setData(result);
}
private static Map<String, Object> buildMessageBody(String userSid, String openId, String totalTee, List<OrdOrderDetailVo> detailVos, String returnUrl) {
//拼接base参数
String name = "";
@@ -446,6 +448,7 @@ public class OrdOrderService extends MybatisBaseService<OrdOrderMapper, OrdOrder
PagerVo<LpkStoreVo> p = PagerUtil.pageToVo(pagging, null);
return rb.success().setData(p);
}
public ResultBean<OrdOrderVo> getOrderDetails(String sid) {
ResultBean rb = new ResultBean().fail();
OrdOrderVo pagging = baseMapper.getOrderDetails(sid);
@@ -520,6 +523,7 @@ public class OrdOrderService extends MybatisBaseService<OrdOrderMapper, OrdOrder
}
return rb.success().setData(order);
}
public ResultBean getPreOrder(OrdOrderQuery query) {
ResultBean rb = new ResultBean().fail();
if (StringUtils.isBlank(query.getMainSid())) {
@@ -534,6 +538,7 @@ public class OrdOrderService extends MybatisBaseService<OrdOrderMapper, OrdOrder
/**
* 去除多余.0
*
* @param num
* @return
*/
@@ -546,4 +551,18 @@ public class OrdOrderService extends MybatisBaseService<OrdOrderMapper, OrdOrder
}
return num;
}
public String orderGoodsNames(String outTradeNo) {
String names = "";
List<OrdOrderGoodsItem> list = baseMapper.listGoodsInfoByOutTradeNo(outTradeNo);
for (int i = 0; i < list.size(); i++) {
if (i == 0) {
names = list.get(i).getGoodsName() + "*" + list.get(i).getGoodsNumber();
} else {
names = names + "," + list.get(i).getGoodsName() + "*" + list.get(i).getGoodsNumber();
}
}
return names;
}
}