获取订单中商品名
This commit is contained in:
@@ -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
|
||||
|
||||
24
src/main/java/com/yxt/yythmall/adminapi/OrdertoolsRest.java
Normal file
24
src/main/java/com/yxt/yythmall/adminapi/OrdertoolsRest.java
Normal 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);
|
||||
}
|
||||
}
|
||||
@@ -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) {
|
||||
}
|
||||
};
|
||||
}
|
||||
}
|
||||
@@ -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; // 商品信息
|
||||
|
||||
}
|
||||
@@ -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; // 状态
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
package com.yxt.yythmall.biz.ordorder;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class OrdOrderGoodsItem {
|
||||
private String goodsName;
|
||||
private int goodsNumber;
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user