springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/ComShopFundsExportDTO.java
New file @@ -0,0 +1,34 @@ package com.panzhihua.common.model.dtos.shop; import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonIgnore; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.util.Date; /** * @ClasssName OrderShipDTO * @Description TODO * @Author cedoo * @Date 2021/4/16 * @Version 1.0 **/ @Data @ApiModel("订单导出信息") public class ComShopFundsExportDTO { @ApiModelProperty(value = "订单编号",example = "316356541616") private String orderNo; @ApiModelProperty(value = "支付时间-开始",example = "2021-03-18 19:59:06") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private Date payTimeStart; @ApiModelProperty(value = "支付时间-结束",example = "2021-04-18 19:59:14") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private Date payTimeEnd; @ApiModelProperty(value = "订单ID", notes = "如果指定了订单ID,其它搜索条件将被忽略,只导出指定订单") private Long[] orderIds; @JsonIgnore private Long userId; } springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/ComShopOrderDeliverDTO.java
New file @@ -0,0 +1,24 @@ package com.panzhihua.common.model.dtos.shop; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.NonNull; import javax.validation.constraints.Min; /** * @ClasssName OrderShipDTO * @Description TODO * @Author cedoo * @Date 2021/4/16 * @Version 1.0 **/ @Data @ApiModel("订单发货信息") public class ComShopOrderDeliverDTO { @ApiModelProperty(value = "订单号") private String orderNo; @ApiModelProperty(value = "订单ID") private Long orderId; } springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/ComShopOrderExportDTO.java
New file @@ -0,0 +1,44 @@ package com.panzhihua.common.model.dtos.shop; import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonIgnore; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.util.Date; /** * @ClasssName OrderShipDTO * @Description TODO * @Author cedoo * @Date 2021/4/16 * @Version 1.0 **/ @Data @ApiModel("订单导出信息") public class ComShopOrderExportDTO { @ApiModelProperty(value = "订单编号",example = "316356541616") private String orderNo; @ApiModelProperty(value = "用户账号") private String userAccount; @ApiModelProperty(value = "收货人",example = "张三") private String receiverAccount; @ApiModelProperty(value = "收货人电话",example = "13123456789") private String receiverPhone; @ApiModelProperty(value = "商品",example = "鞋") private String goodsName; @ApiModelProperty(value = "订单状态(1.待付款 2.代发货 3.待收货 4.待评价 5.已完成 6.已取消)",example = "1") private Integer status; @ApiModelProperty(value = "下单时间-开始",example = "2021-04-01 19:58:41") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private String createAtStart; @ApiModelProperty(value = "下单时间-结束",example = "2021-04-18 19:58:54") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private Date createAtEnd; @ApiModelProperty(value = "订单ID", notes = "如果指定了订单ID,其它搜索条件将被忽略,只导出指定订单") private Long[] orderIds; @JsonIgnore private Long userId; } springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/ComShopOrderShipDTO.java
New file @@ -0,0 +1,25 @@ package com.panzhihua.common.model.dtos.shop; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; /** * @ClasssName OrderShipDTO * @Description TODO * @Author cedoo * @Date 2021/4/16 * @Version 1.0 **/ @Data @ApiModel("订单发货信息") public class ComShopOrderShipDTO { @ApiModelProperty(value = "订单号") private String orderNo; @ApiModelProperty(value = "ID") private Long orderId; @ApiModelProperty(value = "物流公司") private String logisticsCompany; @ApiModelProperty(value = "物流单号") private String logisticsNo; } springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/ExcelShopFundsDTO.java
New file @@ -0,0 +1,37 @@ package com.panzhihua.common.model.dtos.shop; import com.alibaba.excel.annotation.ExcelProperty; import com.alibaba.excel.annotation.format.NumberFormat; import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; import java.math.BigDecimal; import java.text.DecimalFormat; import java.util.Date; /** * @description: 商城订单导出 * @author: Null * @date: 2021-4-18 16:13:21 */ @Data public class ExcelShopFundsDTO { @ExcelProperty("金额") @NumberFormat("0.00") private BigDecimal totalAmount; @ExcelProperty("支付时间") private String payTime; @ExcelProperty("订单编号") private String orderNo; @ExcelProperty("支付方式") private String payType; @ExcelProperty("收支类型") private String type; } springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/ExcelShopOrderDTO.java
New file @@ -0,0 +1,57 @@ package com.panzhihua.common.model.dtos.shop; import com.alibaba.excel.annotation.ExcelProperty; import com.alibaba.excel.annotation.format.NumberFormat; import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; import java.math.BigDecimal; import java.util.Date; /** * @description: 商城订单导出 * @author: cedoo * @date: 2021-4-18 16:13:21 */ @Data public class ExcelShopOrderDTO { @ExcelProperty("商品总额") @NumberFormat("0.00") private BigDecimal goodsTotal; @ExcelProperty("全部商品") private String goodsName; @ExcelProperty("数量总计") private Integer goodsCount; @ExcelProperty("用户账号") private String account; @ExcelProperty("收货人") private String receiver; @ExcelProperty("收货人电话") private String receiverPhone; @ExcelProperty("收货地址") private String receiverAddress; @ExcelProperty("店铺名称") private String storeName; @ExcelProperty("备注") private String remark; @ExcelProperty("订单状态") private String status; @ExcelProperty("下单时间") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private Date createAt; @ExcelProperty("付款时间") private String payTime; } springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/PageComShopFundsSearchDTO.java
New file @@ -0,0 +1,35 @@ package com.panzhihua.common.model.dtos.shop; import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonIgnore; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.util.Date; /** * @ClasssName OrderSearchDTO * @Description 资金管理DTO * @Author cedoo * @Date 2021/4/16 * @Version 1.0 **/ @Data @ApiModel("资金管理查询参数") public class PageComShopFundsSearchDTO { @ApiModelProperty(value = "订单编号",example = "316356541616") private String orderNo; @ApiModelProperty(value = "支付时间-开始",example = "2021-03-18 19:59:06") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private Date payTimeStart; @ApiModelProperty(value = "支付时间-结束",example = "2021-04-18 19:59:14") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private Date payTimeEnd; @ApiModelProperty(value = "分页-当前页数",example = "1", required = true) private Long pageNum; @ApiModelProperty(value = "分页-每页记录数",example = "10", required = true) private Long pageSize; @JsonIgnore private Long userId; } springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/PageComShopOrderSearchDTO.java
@@ -1,5 +1,6 @@ package com.panzhihua.common.model.dtos.shop; import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonIgnore; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -27,10 +28,12 @@ @ApiModelProperty(value = "商品",example = "鞋") private String goodsName; @ApiModelProperty(value = "订单状态(1.待付款 2.代发货 3.待收货 4.待评价 5.已完成 6.已取消)",example = "1") private Date status; private Integer status; @ApiModelProperty(value = "下单时间-开始",example = "1") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private String createAtStart; @ApiModelProperty(value = "下单时间-结束",example = "1") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private Date createAtEnd; @ApiModelProperty(value = "分页-当前页数",example = "1", required = true) private Long pageNum; springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/helper/SerializerBigDecimal.java
New file @@ -0,0 +1,73 @@ package com.panzhihua.common.model.helper; import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.databind.BeanProperty; import com.fasterxml.jackson.databind.JsonMappingException; import com.fasterxml.jackson.databind.JsonSerializer; import com.fasterxml.jackson.databind.SerializerProvider; import com.fasterxml.jackson.databind.ser.ContextualSerializer; import java.io.IOException; import java.math.BigDecimal; import java.math.RoundingMode; import java.text.DecimalFormat; import java.util.Objects; /** * BigDecimal序列化(默认保留二位小数和四舍五入) * @author cedoo * @date 2021-4-19 01:24:28 */ public class SerializerBigDecimal extends JsonSerializer<BigDecimal> implements ContextualSerializer { protected DecimalFormat decimalFormat; public SerializerBigDecimal() { } public SerializerBigDecimal(DecimalFormat decimalFormat) { this.decimalFormat = decimalFormat; } @Override public void serialize(BigDecimal value, JsonGenerator gen, SerializerProvider serializers) throws IOException { if(Objects.isNull(value)) { gen.writeNull(); } else { if(null != decimalFormat) { gen.writeNumber(decimalFormat.format(value)); }else { gen.writeNumber(value.setScale(2, BigDecimal.ROUND_HALF_UP)); } } } @Override public JsonSerializer<?> createContextual(SerializerProvider prov, BeanProperty property) throws JsonMappingException { JsonFormat.Value format = findFormatOverrides(prov, property, handledType()); if (format == null) { return this; } if (format.hasPattern()) { DecimalFormat decimalFormat = new DecimalFormat(format.getPattern()); decimalFormat.setRoundingMode(RoundingMode.HALF_UP); return new SerializerBigDecimal(decimalFormat); } return this; } protected JsonFormat.Value findFormatOverrides(SerializerProvider provider, BeanProperty prop, Class<?> typeForDefaults) { if (prop != null) { return prop.findPropertyFormat(provider.getConfig(), typeForDefaults); } return provider.getDefaultPropertyFormat(typeForDefaults); } } springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopFundsOrderVO.java
New file @@ -0,0 +1,39 @@ package com.panzhihua.common.model.vos.shop; import com.alibaba.excel.annotation.ExcelProperty; import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.panzhihua.common.model.helper.SerializerBigDecimal; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.math.BigDecimal; @Data @ApiModel("商户资金订单信息") public class ComShopFundsOrderVO { @ApiModelProperty("金额") //@JsonFormat(pattern = "0.00", shape = JsonFormat.Shape.STRING) //@JsonSerialize(using = SerializerBigDecimal.class) private BigDecimal totalAmount; @ApiModelProperty("支付时间") private String payTime; @ApiModelProperty("订单编号") private String orderNo; @ApiModelProperty("支付方式") private String payType; @ApiModelProperty("收支类型") private String type; @ApiModelProperty("订单ID") private long id; } springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopFundsVO.java
New file @@ -0,0 +1,29 @@ package com.panzhihua.common.model.vos.shop; import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.panzhihua.common.model.helper.SerializerBigDecimal; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.math.BigDecimal; @Data @ApiModel("商户资金统计信息") public class ComShopFundsVO { @ApiModelProperty(value = "当日收入") private BigDecimal todayTotal; @ApiModelProperty(value = "本周收入") private BigDecimal weekTotal; @ApiModelProperty(value = "本月收入") private BigDecimal monthTotal; @JsonIgnore private Long userId; } springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/CommunityService.java
@@ -2019,4 +2019,68 @@ */ @PostMapping("/shop/orderStatistics") R orderStatistics(@RequestParam("userId") Long userId); /** * 订单发货 * @param orderShipDTO 商城订单发货信息 * @return 发货结果 */ @PostMapping("/shop/shipOrder") R shipOrder(@RequestBody ComShopOrderShipDTO orderShipDTO); /** * 订单配送 * @param deliverDTO 订单信息 * @return 配送结果 */ @PostMapping("/shop/deliverOrder") R deliverOrder(@RequestBody ComShopOrderDeliverDTO deliverDTO); /** * 订单完成配送 * @param deliverDTO 订单信息 * @return 配送完成结果 */ @PostMapping("/shop/finishDeliverOrder") R finishDeliverOrder(@RequestBody ComShopOrderDeliverDTO deliverDTO); /** * 获取用户商户详情 * @param userId 用户ID */ @GetMapping("/shop/getUserStoreInfo") R getUserStoreInfo(@RequestParam("userId") Long userId); /** * 订单导出信息 * @param comShopOrderExportDTO 订单导出信息 * @return 订单导出信息 */ @PostMapping("/shop/shopOrderExportData") R shopOrderExportData(@RequestBody ComShopOrderExportDTO comShopOrderExportDTO); /** * 资金管理导出信息 * @param comShopFundsExportDTO 资金管理导出信息 * @return 资金管理导出信息 */ @PostMapping("/shop/shopOrderFundsExportData") R shopOrderFundsExportData(@RequestBody ComShopFundsExportDTO comShopFundsExportDTO ); /** * 店铺资金统计信息 * @param userId 用户ID * @return 店铺资金统计信息 */ @GetMapping("/shop/getFundsStat") R getFundsStat(@RequestParam("userId") Long userId); /** * 店铺资金统计信息 * @param pageComShopFundsSearchDTO 店铺资金 * @return 店铺资金统计信息 */ @PostMapping("/shop/pageShopFunds") R pageShopFunds(@RequestBody PageComShopFundsSearchDTO pageComShopFundsSearchDTO); } springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/IPUtil.java
@@ -94,9 +94,8 @@ ipAddress = "["+jsonObject.get("country")+"/" +jsonObject.get("city")+"]"; } }catch(Exception e){ log.error("获取IP所属地址出错",e); e.printStackTrace(); log.error("获取IP所属地址出错"); //e.printStackTrace(); } return ipAddress; } springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ShopApi.java
@@ -8,6 +8,7 @@ import com.panzhihua.common.model.dtos.shop.PageComShopStoreDTO; import com.panzhihua.common.model.vos.R; import com.panzhihua.common.model.vos.shop.AddShopGoodsVO; import com.panzhihua.service_community.model.dos.ComShopOrderDO; import com.panzhihua.service_community.service.*; import com.panzhihua.common.model.vos.shop.ShopOperLogVO; import com.panzhihua.common.model.vos.shop.ShopStoreVO; @@ -94,6 +95,18 @@ @GetMapping("/getStoreInfo") public R getOneInfo(@RequestParam("id") Long id) { return comShopStoreService.getOneInfo(id); } /** * 获取用户商铺详细 * * @param userId 用户ID * @return */ @GetMapping("/getUserStoreInfo") public R getUserStoreInfo(@RequestParam("userId") Long userId) { return comShopStoreService.getUserStoreInfo(userId); } /** @@ -372,4 +385,77 @@ return comShopGoodsService.changeStatus(id,status); } /** * 订单发货 * @param orderShipDTO 发货信息 * @return 发货结果 */ @PostMapping("/shipOrder") R shipOrder(@RequestBody ComShopOrderShipDTO orderShipDTO){ return comShopOrderService.shipOrder(orderShipDTO); } /** * 订单发货 * @param deliverDTO 订单ID * @return 发货结果 */ @PostMapping("/deliverOrder") R deliverOrder(@RequestBody ComShopOrderDeliverDTO deliverDTO){ Long orderId = deliverDTO.getOrderId(); return comShopOrderService.deliverOrder(orderId); } /** * 订单发货 * @param deliverDTO 订单ID * @return 发货结果 */ @PostMapping("/finishDeliverOrder") R finishDeliverOrder(@RequestBody ComShopOrderDeliverDTO deliverDTO){ Long orderId = deliverDTO.getOrderId(); return comShopOrderService.finishDeliverOrder(orderId); } /** * 订单导出信息 * @param comShopOrderExportDTO 订单导出信息 * @return 订单导出信息 */ @PostMapping("/shopOrderExportData") R shopOrderExportData(@RequestBody ComShopOrderExportDTO comShopOrderExportDTO){ return comShopOrderService.shopOrderExportData(comShopOrderExportDTO); } /** * 资金管理导出信息 * @param comShopFundsExportDTO 资金管理导出信息 * @return 资金管理导出信息 */ @PostMapping("/shopOrderFundsExportData") R shopOrderFundsExportData(@RequestBody ComShopFundsExportDTO comShopFundsExportDTO){ return comShopOrderService.shopOrderFundsExportData(comShopFundsExportDTO); } /** * 用户资金统计信息 * @param userId 用户ID * @return 统计信息 */ @GetMapping("/getFundsStat") R getFundsStat(@RequestParam("userId") Long userId){ return comShopOrderService.getFundsStat(userId); } /** * 店铺资金统计信息 * @param pageComShopFundsSearchDTO 店铺资金 * @return 店铺资金统计信息 */ @PostMapping("/pageShopFunds") R pageShopFunds(@RequestBody PageComShopFundsSearchDTO pageComShopFundsSearchDTO){ return comShopOrderService.pageShopFunds(pageComShopFundsSearchDTO); } } springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComShopOrderDAO.java
@@ -3,14 +3,11 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.panzhihua.common.model.dtos.shop.PageComOrderListDTO; import com.panzhihua.common.model.vos.shop.ComShopOrderPageVO; import com.panzhihua.common.model.vos.shop.ComShopOrderVO; import com.panzhihua.common.model.dtos.shop.*; import com.panzhihua.common.model.vos.shop.*; import com.baomidou.mybatisplus.core.metadata.IPage; import com.panzhihua.common.model.dtos.PageDTO; import com.panzhihua.common.model.dtos.shop.PageComShopOrderSearchDTO; import com.panzhihua.common.model.vos.shop.ComShopOrderVO; import com.panzhihua.common.model.vos.shop.PageShopStoreVO; import com.panzhihua.service_community.model.dos.ComShopOrderDO; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -36,14 +33,180 @@ IPage<ComShopOrderPageVO> pageOrderList(Page page,@Param("comOrderListDTO") PageComOrderListDTO comOrderListDTO); @Select("<script> " + "SELECT ordr.id, ordr.store_id, ordr. user_id, ordr.order_no, ordr.pay_no, \n" + " ordr.wx_tarde_no, ordr.status, ordr.pay_status, ordr.receiver_id, \n" + " ordr.total_amount, ordr.discount_amount, ordr.pay_amount, ordr.pay_type, \n" + " ordr.pay_time, ordr.delivery_type, ordr.delivery_status, ordr.logistics_company, \n" + " ordr.logistics_no, ordr.create_at \n" + " FROM com_shop_order ordr LEFT JOIN com_shop_order_goods goods ON ordr.id = goods.order_id \n" + " order by create_at desc"+ "SELECT sr.id, sr.store_id, sr.user_id, sr.order_no, sr.pay_no, \n" + " sr.wx_tarde_no, sr.status, sr.pay_status, sr.receiver_id, \n" + " sr.total_amount, sr.discount_amount, sr.pay_amount, sr.pay_type, \n" + " sr.pay_time, sr.delivery_type, sr.delivery_status, sr.logistics_company, \n" + " sr.logistics_no, sr.create_at \n" + " FROM com_shop_order sr LEFT JOIN com_shop_order_goods og ON sr.id = og.order_id \n" + " LEFT JOIN com_shop_goods_attr ga ON og.goods_attr_id = ga.id \n" + " LEFT JOIN sys_user su ON sr.user_id = su.user_id \n" + " LEFT JOIN com_shop_user_address uad ON sr.receiver_id = uad.id \n" + " LEFT JOIN com_shop_store ss ON sr.store_id = ss.id \n" + " WHERE sr.delete_status = 1" + "<if test='pageComShopOrderSearchDTO.createAtStart != null'>" + " AND #{pageComShopOrderSearchDTO.createAtStart} <![CDATA[<=]]> sr.create_at " + " </if> " + "<if test='pageComShopOrderSearchDTO.createAtEnd != null'>" + " AND sr.create_at <![CDATA[<=]]> #{pageComShopOrderSearchDTO.createAtEnd} " + " </if> " + "<if test='pageComShopOrderSearchDTO.orderNo != null '>" + " AND sr.order_no = #{pageComShopOrderSearchDTO.orderNo} " + " </if> " + "<if test='pageComShopOrderSearchDTO.userAccount != null '>" + " AND su.phone = #{pageComShopOrderSearchDTO.userAccount} " + " </if> " + "<if test='pageComShopOrderSearchDTO.receiverAccount != null '>" + " AND uad.name = #{pageComShopOrderSearchDTO.receiverAccount} " + " </if> " + "<if test='pageComShopOrderSearchDTO.receiverPhone != null '>" + " AND uad.phone = #{pageComShopOrderSearchDTO.receiverPhone} " + " </if> " + "<if test='pageComShopOrderSearchDTO.goodsName != null'>" + " AND og.goods_name like concat('%', #{pageComShopOrderSearchDTO.goodsName}, '%') " + " </if> " + "<if test='pageComShopOrderSearchDTO.status != null '>" + " AND sr.status = #{pageComShopOrderSearchDTO.status} " + " </if> " + " ORDER BY sr.create_at "+ "</script>") IPage<ComShopOrderVO> pageOrderBy(PageDTO page,@Param("pageComShopOrderSearchDTO") PageComShopOrderSearchDTO pageComShopOrderSearchDTO); IPage<ComShopOrderSearchVO> pageOrderBy(Page page, @Param("pageComShopOrderSearchDTO") PageComShopOrderSearchDTO pageComShopOrderSearchDTO); @Select("<script> " + "SELECT sr.total_amount AS goods_total, GROUP_CONCAT(og.goods_name) AS goods_name , count(og.id) AS goods_count, " + " su.phone AS account, uad.name AS receiver, uad.phone AS receiverPhone, \n" + " concat(uad.province_name, uad.city_name, uad.district_name, uad.detail_address) AS receiver_address, ss.name AS storeName, sr.remark," + " CASE\n" + " WHEN sr.`status` = 1 THEN '待付款' \n" + " WHEN sr.`status` = 2 THEN '待发货' \n" + " WHEN sr.`status` = 3 THEN '待收货' \n" + " WHEN sr.`status` = 4 THEN '待评价' \n" + " WHEN sr.`status` = 5 THEN '已完成' \n" + " WHEN sr.`status` = 5 THEN '已取消' \n" + " ELSE '---' \n" + " END AS 'status' , " + " sr.create_at, " + " CASE WHEN sr.pay_time IS NOT NULL THEN sr.pay_time ELSE '---' END AS pay_time " + " FROM com_shop_order sr LEFT JOIN com_shop_order_goods og ON sr.id = og.order_id \n" + " LEFT JOIN com_shop_goods_attr ga ON og.goods_attr_id = ga.id \n" + " LEFT JOIN sys_user su ON sr.user_id = su.user_id \n" + " LEFT JOIN com_shop_user_address uad ON sr.receiver_id = uad.id \n" + " LEFT JOIN com_shop_store ss ON sr.store_id = ss.id \n" + " WHERE sr.delete_status = 1" + "<if test='comShopOrderExportDTO.userId != null'>" + " AND com_shop_store.user_id = #{comShopOrderExportDTO.userId} " + " </if> " + "<if test='comShopOrderExportDTO.orderIds != null and comShopOrderExportDTO.orderIds.length>0 '>" + " AND sr.id in " + "<foreach collection='comShopOrderExportDTO.orderIds' item='id' index='index' open='(' close=')' separator=',' >\n" + " #{id}" + "</foreach>" + " </if> " + "<if test='comShopOrderExportDTO.orderIds == null or comShopOrderExportDTO.orderIds.length==0 '>" + "<if test='comShopOrderExportDTO.createAtStart != null '>" + " AND #{comShopOrderExportDTO.createAtStart} <![CDATA[<=]]> sr.create_at " + " </if> " + "<if test='comShopOrderExportDTO.createAtEnd != null'>" + " AND sr.create_at <![CDATA[<=]]> #{comShopOrderExportDTO.createAtEnd} " + " </if> " + "<if test='comShopOrderExportDTO.orderNo != null '>" + " AND sr.order_no = #{comShopOrderExportDTO.orderNo} " + " </if> " + "<if test='comShopOrderExportDTO.userAccount != null '>" + " AND su.phone = #{comShopOrderExportDTO.userAccount} " + " </if> " + "<if test='comShopOrderExportDTO.receiverAccount != null'>" + " AND uad.name = #{comShopOrderExportDTO.receiverAccount} " + " </if> " + "<if test='comShopOrderExportDTO.receiverPhone != null '>" + " AND uad.phone = #{comShopOrderExportDTO.receiverPhone} " + " </if> " + "<if test='comShopOrderExportDTO.goodsName != null '>" + " AND og.name like concat('%', #{comShopOrderExportDTO.goodsName}, '%') " + " </if> " + "<if test='comShopOrderExportDTO.status != null '>" + " AND sr.status = #{comShopOrderExportDTO.status} " + " </if> " + " </if> " + " GROUP BY sr.id ORDER BY sr.create_at "+ "</script>") IPage<ExcelShopOrderDTO> selectOrderExport(Page page, @Param("comShopOrderExportDTO") ComShopOrderExportDTO comShopOrderExportDTO); @Select("<script> " + "SELECT sr.total_amount, sr.pay_time, sr.order_no, \n" + " CASE WHEN sr.pay_type = 1 THEN '微信支付' ELSE '' END AS payType, \n" + " '收入' AS 'type' " + "FROM com_shop_order sr LEFT JOIN com_shop_store st ON sr.store_id = st.id \n" + " WHERE sr.pay_status = 2 AND sr.delete_status=1 " + "<if test='comShopFundsExportDTO.userId != null'>" + " AND st.sys_user_id = #{comShopFundsExportDTO.userId} " + " </if> " + "<if test='comShopFundsExportDTO.orderIds != null and comShopFundsExportDTO.orderIds.length>0 '>" + " AND sr.id in " + "<foreach collection='comShopFundsExportDTO.orderIds' item='id' index='index' open='(' close=')' separator=',' >\n" + " #{id}" + "</foreach>" + " </if> " + "<if test='comShopFundsExportDTO.orderIds == null or comShopFundsExportDTO.orderIds.length==0 '>" + "<if test='comShopFundsExportDTO.payTimeStart != null'>" + " AND #{comShopFundsExportDTO.payTimeStart} <![CDATA[<=]]> sr.pay_time " + " </if> " + "<if test='comShopFundsExportDTO.payTimeEnd != null'>" + " AND sr.pay_time <![CDATA[<=]]> #{comShopFundsExportDTO.payTimeEnd} " + " </if> " + "<if test='comShopFundsExportDTO.orderNo != null '>" + " AND sr.order_no = #{comShopFundsExportDTO.orderNo} " + " </if> " + " </if> " + " GROUP BY sr.id ORDER BY sr.create_at "+ "</script>") IPage<ExcelShopFundsDTO> selectFundsExport(Page page, @Param("comShopFundsExportDTO") ComShopFundsExportDTO comShopFundsExportDTO); @Select("<script> " + " SELECT sys_user_id,\n" + " sum(case when abt.days = DATE_FORMAT(NOW(),'%Y%m%d') then abt.t END) AS todayTotal,\n" + " sum(case when abt.days = DATE_FORMAT(NOW(),'%Y%u') then abt.t END) AS weekTotal,\n" + " sum(case when abt.days = DATE_FORMAT(NOW(),'%Y%m') then abt.t END) AS monthTotal\n" + "FROM (\n" + "SELECT ss.sys_user_id, (sr.pay_amount) AS t , DATE_FORMAT(sr.pay_time,'%Y%m%d') days\n" + "FROM com_shop_order sr LEFT JOIN com_shop_store ss ON sr.store_id = ss.id\n" + "WHERE sr.pay_status = 2 AND DATE_FORMAT(sr.pay_time,'%Y%m%d') = DATE_FORMAT(NOW(),'%Y%m%d')\n" + "GROUP BY days\n" + "UNION \n" + "SELECT ss.sys_user_id, sum(sr.pay_amount) AS t, DATE_FORMAT(sr.pay_time,'%Y%u') weeks\n" + "FROM com_shop_order sr LEFT JOIN com_shop_store ss ON sr.store_id = ss.id\n" + "WHERE sr.pay_status = 2 AND DATE_FORMAT(sr.pay_time,'%Y%u') = DATE_FORMAT(NOW(),'%Y%u')\n" + "GROUP BY weeks\n" + "UNION \n" + "SELECT ss.sys_user_id, sum(sr.pay_amount) AS t, DATE_FORMAT(sr.pay_time,'%Y%m') months\n" + "FROM com_shop_order sr LEFT JOIN com_shop_store ss ON sr.store_id = ss.id\n" + "WHERE sr.pay_status = 2 AND DATE_FORMAT(sr.pay_time,'%Y%m') = DATE_FORMAT(NOW(),'%Y%m')\n" + "GROUP BY months\n" + ") abt\n" + "GROUP BY abt.sys_user_id "+ "</script>") ComShopFundsVO queryStatis(Long userId); @Select("<script> " + "SELECT sr.id, sr.total_amount, sr.pay_time, sr.order_no, \n" + " CASE WHEN sr.pay_type = 1 THEN '微信支付' ELSE '' END AS payType, \n" + " '收入' AS 'type' " + "FROM com_shop_order sr LEFT JOIN com_shop_store st ON sr.store_id = st.id \n" + " WHERE sr.pay_status = 2 AND sr.delete_status=1 " + "<if test='pageComShopFundsSearchDTO.userId != null'>" + " AND st.sys_user_id = #{pageComShopFundsSearchDTO.userId} " + " </if> " + "<if test='pageComShopFundsSearchDTO.payTimeStart != null'>" + " AND #{pageComShopFundsSearchDTO.payTimeStart} <![CDATA[<=]]> sr.pay_time " + " </if> " + "<if test='pageComShopFundsSearchDTO.payTimeEnd != null'>" + " AND sr.pay_time <![CDATA[<=]]> #{pageComShopFundsSearchDTO.payTimeEnd} " + " </if> " + "<if test='pageComShopFundsSearchDTO.orderNo != null '>" + " AND sr.order_no = #{pageComShopFundsSearchDTO.orderNo} " + " </if> " + " GROUP BY sr.id ORDER BY sr.create_at "+ "</script>") IPage<ComShopFundsOrderVO> pageShopFunds(Page page, @Param("pageComShopFundsSearchDTO") PageComShopFundsSearchDTO pageComShopFundsSearchDTO); } springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComShopOrderService.java
@@ -1,11 +1,8 @@ package com.panzhihua.service_community.service; import com.baomidou.mybatisplus.extension.service.IService; import com.panzhihua.common.model.dtos.shop.PageComShopOrderSearchDTO; import com.panzhihua.common.model.dtos.shop.*; import com.panzhihua.common.model.vos.R; import com.panzhihua.common.model.dtos.shop.ComShopOrderCreateDTO; import com.panzhihua.common.model.dtos.shop.ComShopOrderPreviewDTO; import com.panzhihua.common.model.dtos.shop.PageComOrderListDTO; import com.panzhihua.common.model.vos.R; import com.panzhihua.service_community.model.dos.ComShopOrderDO; @@ -80,4 +77,52 @@ */ R orderStatistics(Long userId); /** * 订单发货 * @param orderShipDTO 订单发货信息 * @return 发货结果 */ R shipOrder(ComShopOrderShipDTO orderShipDTO); /** * 订单配送 * @param orderId 订单id * @return 配送结果 */ R deliverOrder(Long orderId); /** * 订单完成配送 * @param orderId 订单id * @return 完成配送结果 */ R finishDeliverOrder(Long orderId); /** * 获取订单导出数据 * @param comShopOrderExportDTO 订单导出参数 * @return 订单数据 */ R shopOrderExportData(ComShopOrderExportDTO comShopOrderExportDTO); /** * 获取资金导出数据 * @param comShopFundsExportDTO 资金导出参数 * @return 资金数据 */ R shopOrderFundsExportData(ComShopFundsExportDTO comShopFundsExportDTO); /** * 获取用户资金信息 * @param userId 用户ID * @return 统计结果 */ R getFundsStat(Long userId); /** * 获取分页 资金订单数据 * @param pageComShopFundsSearchDTO 资金导出参数 * @return 资金订单数据 */ R pageShopFunds(PageComShopFundsSearchDTO pageComShopFundsSearchDTO); } springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComShopStoreService.java
@@ -57,4 +57,11 @@ * @return */ R getOneInfo(Long id); /** * 获取用户商铺信息 * @param userId * @return */ R getUserStoreInfo(Long userId); } springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopOrderServiceImpl.java
@@ -1,19 +1,16 @@ package com.panzhihua.service_community.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; 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.panzhihua.common.model.dtos.PageDTO; import com.panzhihua.common.model.dtos.shop.PageComShopOrderSearchDTO; import com.panzhihua.common.model.dtos.shop.*; import com.panzhihua.common.model.vos.R; import com.panzhihua.service_community.dao.ComShopOrderDAO; import com.panzhihua.service_community.model.dos.ComShopOrderDO; import com.panzhihua.common.model.dtos.shop.ComShopOrderCreateDTO; import com.panzhihua.common.model.dtos.shop.ComShopOrderCreateGoodsDTO; import com.panzhihua.common.model.dtos.shop.ComShopOrderPreviewDTO; import com.panzhihua.common.model.dtos.shop.PageComOrderListDTO; import com.panzhihua.common.model.vos.R; import com.panzhihua.common.model.vos.shop.*; import com.panzhihua.common.utlis.OrderNoUtils; @@ -55,6 +52,8 @@ private ComShopOrderOperateDAO comShopOrderOperateDAO; @Resource private ComShopOrderGoodsDAO comShopOrderGoodsDAO; @Resource private ComShopOrderDAO comShopOrderDAO; /** * 订单预览 @@ -511,22 +510,119 @@ } @Override public R pageShopOrder(PageComShopOrderSearchDTO pageComShopOrderSearchDTO) { public R shipOrder(ComShopOrderShipDTO orderShipDTO) { ComShopOrderDO comShopOrderDO = comShopOrderDAO.selectById(orderShipDTO.getOrderId()); if(comShopOrderDO==null){ return R.fail("订单不存在"); } if(!(comShopOrderDO.getStatus()==2) || !(comShopOrderDO.getDeleteStatus()==1)){ return R.fail("订单发货失败,订单状态不允许发货"); } comShopOrderDO.setDeliveryStatus(2); comShopOrderDO.setDeliveryType(2); comShopOrderDO.setStatus(3); comShopOrderDO.setLogisticsCompany(orderShipDTO.getLogisticsCompany()); comShopOrderDO.setLogisticsNo(orderShipDTO.getLogisticsNo()); int updated = comShopOrderDAO.updateById(comShopOrderDO); if(updated==1){ return R.ok("发货成功"); } return R.fail("发货失败!"); } @Override public R deliverOrder(Long orderId) { ComShopOrderDO comShopOrderDO = comShopOrderDAO.selectById(orderId); if(comShopOrderDO==null){ return R.fail("订单不存在"); } if(!(comShopOrderDO.getStatus()==2)){ return R.fail("当前订单不能配送"); } comShopOrderDO.setDeliveryStatus(4); comShopOrderDO.setDeliveryType(1); int updated = comShopOrderDAO.updateById(comShopOrderDO); if(updated==1){ return R.ok("开始配送"); } return R.fail("操作失败!"); } @Override public R finishDeliverOrder(Long orderId) { ComShopOrderDO comShopOrderDO = comShopOrderDAO.selectById(orderId); if(comShopOrderDO==null){ return R.fail("订单不存在"); } if(!(comShopOrderDO.getDeliveryStatus() == 4)){ return R.fail("订单还未开始配送"); } comShopOrderDO.setDeliveryStatus(5); int updated = comShopOrderDAO.updateById(comShopOrderDO); if(updated==1){ return R.ok("配送完成"); } return R.fail("操作失败!"); } @Override public R shopOrderExportData(ComShopOrderExportDTO comShopOrderExportDTO) { Page page = new Page(); page.setSize(1000); page.setCurrent(1); IPage<ExcelShopOrderDTO> excelShopOrderDTO = comShopOrderDAO.selectOrderExport(page, comShopOrderExportDTO); return R.ok(excelShopOrderDTO.getRecords()); } @Override public R shopOrderFundsExportData(ComShopFundsExportDTO comShopFundsExportDTO) { Page page = new Page(); page.setSize(1000); page.setCurrent(1); IPage<ExcelShopFundsDTO> excelShopFundsDTO = comShopOrderDAO.selectFundsExport(page, comShopFundsExportDTO); return R.ok(excelShopFundsDTO.getRecords()); } @Override public R getFundsStat(Long userId) { ComShopFundsVO comShopFundsVO = comShopOrderDAO.queryStatis(userId); return R.ok(comShopFundsVO); } @Override public R pageShopFunds(PageComShopFundsSearchDTO pageComShopFundsSearchDTO) { Long pageNum = pageComShopFundsSearchDTO.getPageNum(); Long pageSize = pageComShopFundsSearchDTO.getPageSize(); Page page = new Page(); if(pageNum==null||0==pageNum.longValue()){ pageNum = 1l; } if(pageSize==null||0==pageSize.longValue()){ pageSize = 10l; } page.setCurrent(pageNum); page.setSize(pageSize); IPage<ComShopFundsOrderVO> comShopFundsOrderVOIPage = comShopOrderDAO.pageShopFunds(page, pageComShopFundsSearchDTO); return R.ok(comShopFundsOrderVOIPage); } @Override public R pageShopOrder(PageComShopOrderSearchDTO pageComShopOrderSearchDTO) { Long pageNum = pageComShopOrderSearchDTO.getPageNum(); Long pageSize = pageComShopOrderSearchDTO.getPageSize(); PageDTO page = new PageDTO(); Page page = new Page(); page.setPageNum(pageNum); page.setPageSize(pageSize); if(pageNum==null||new Long(0).equals(pageNum.longValue())){ page.setPageNum(1l); page.setCurrent(pageNum); page.setSize(pageSize); if(pageNum==null||0==pageNum.longValue()){ page.setCurrent(1l); } if(pageSize==null||new Long(0).equals(pageSize.longValue())){ page.setPageSize(10l); if(pageSize==null||0==pageSize.longValue()){ page.setSize(10l); } this.baseMapper.pageOrderBy(page, pageComShopOrderSearchDTO); return null; IPage<ComShopOrderSearchVO> ipage = this.baseMapper.pageOrderBy(page, pageComShopOrderSearchDTO); return R.ok(ipage); } } springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopStoreServiceImpl.java
@@ -114,4 +114,15 @@ BeanUtils.copyProperties(comShopStoreDO,shopStoreVO); return R.ok(shopStoreVO); } @Override public R getUserStoreInfo(Long userId) { ComShopStoreDO comShopStoreDO = this.baseMapper.selectOne(new LambdaQueryWrapper<ComShopStoreDO>().eq(ComShopStoreDO::getDeleteStatus, 1).eq(ComShopStoreDO::getSysUserId, userId)); if (comShopStoreDO == null) { R.fail(500,"商铺不存在"); } ShopStoreVO shopStoreVO = new ShopStoreVO(); BeanUtils.copyProperties(comShopStoreDO,shopStoreVO); return R.ok(shopStoreVO); } }