13 Achegas 6c6412c5ce ... fa1ca97179

Autor SHA1 Mensaxe Data
  wangming fa1ca97179 星闪豹 hai 1 día
  wangming deb0c8e375 Merge remote-tracking branch 'origin/master' hai 1 día
  wangming 3f8a99dd51 Merge branch 'dev' hai 1 día
  wangming 4162de9305 星闪豹 hai 2 días
  wangming 98f6a9c068 星闪豹 hai 2 días
  wangming 72eb770500 星闪豹支付改动 hai 2 días
  wangming 33a0dee237 星闪豹支付改动 hai 3 días
  wangming bdba6bca8d 星闪豹支付改动 hai 1 semana
  wangming dc3f607c21 星闪豹支付改动 hai 1 semana
  wangming 996331a68d 星闪豹支付改动 hai 2 semanas
  wangming c838b41f2d Merge remote-tracking branch 'origin/dev' into dev hai 2 meses
  wangming 674c28113f sm order hai 2 meses
  wangming a67d5bbb7d fix hai 3 meses

+ 0 - 4
yami-shop-api/src/main/java/com/yami/shop/api/controller/UserRegisterController.java

@@ -260,8 +260,4 @@ public class UserRegisterController {
         userService.updateById(user);
         return ResponseEntity.ok().build();
     }
-
-    public static void main(String[] args) {
-        System.out.println();
-    }
 }

+ 1 - 1
yami-shop-api/src/main/resources/application.yml

@@ -66,7 +66,7 @@ application:
 #服务商
 services:
   #服务商AppId
-  spAppId: wx43b5b906cc30ed0b
+  spAppId: wxa5fe8d860623737d
   #服务商商户号
   spMchId: 1725845681
   #商户AppId

+ 31 - 0
yami-shop-bean/src/main/java/com/yami/shop/bean/po/PointsRecordPo.java

@@ -0,0 +1,31 @@
+
+package com.yami.shop.bean.po;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+public class PointsRecordPo {
+
+    @ApiModelProperty("手机号")
+    private String mobile;
+
+    @ApiModelProperty("业务类型 CZ-充值 XD-下单 TK-退款 GQ-过期")
+    private String businessType;
+
+    @ApiModelProperty("开始时间")
+    private String startTime;
+
+    @ApiModelProperty("结束时间")
+    private String endTime;
+
+    @ApiModelProperty("页码")
+    private int current;
+
+    @ApiModelProperty("每页记录数")
+    private int size;
+}

+ 49 - 0
yami-shop-bean/src/main/java/com/yami/shop/bean/vo/PointsRecordVo.java

@@ -0,0 +1,49 @@
+
+package com.yami.shop.bean.vo;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.time.LocalDateTime;
+
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+public class PointsRecordVo {
+
+    @ApiModelProperty("订单编号")
+    @ExcelProperty("订单编号")
+    private String orderNumber;
+
+    @ApiModelProperty("姓名")
+    @ExcelProperty("姓名")
+    private String realName;
+
+    @ApiModelProperty("手机号")
+    @ExcelProperty("手机号")
+    private String mobile;
+
+    @ApiModelProperty("变动积分")
+    @ExcelProperty("变动积分")
+    private String variablePoints;
+
+    @ApiModelProperty("变动后积分")
+    @ExcelProperty("变动后积分")
+    private String currentlyAvailablePoints;
+
+    @ApiModelProperty("创建时间")
+    @ExcelProperty("创建时间")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private LocalDateTime creationDate;
+
+    @ApiModelProperty("业务类型 CZ-充值 XD-下单 TK-退款 GQ-过期")
+    @ExcelProperty("业务类型")
+    private String businessType;
+
+}

+ 1 - 1
yami-shop-platform/src/main/java/com/yami/shop/platform/controller/OrderController.java

@@ -290,7 +290,7 @@ public class OrderController {
         }
         return items.stream()
                 .map(item -> item.getProdName() + "*" + item.getProdCount())
-                .collect(Collectors.joining(" "));
+                .collect(Collectors.joining(";"));
     }
 
     /**

+ 20 - 2
yami-shop-platform/src/main/java/com/yami/shop/platform/controller/PointsRecordController.java

@@ -3,15 +3,18 @@ package com.yami.shop.platform.controller;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.yami.shop.bean.model.PointsRecharge;
 import com.yami.shop.bean.model.PointsRecord;
+import com.yami.shop.bean.po.PointsRecordPo;
+import com.yami.shop.bean.vo.PointsRecordVo;
 import com.yami.shop.common.util.PageParam;
 import com.yami.shop.common.util.R;
 import com.yami.shop.service.PointsRecordService;
+import io.swagger.annotations.ApiOperation;
 import lombok.AllArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.web.bind.annotation.*;
 
+import javax.servlet.http.HttpServletResponse;
 import javax.validation.Valid;
 import java.util.Arrays;
 
@@ -34,7 +37,7 @@ public class PointsRecordController {
      */
     @GetMapping("/page")
     public R<IPage<PointsRecord>> page(PageParam<PointsRecord> pageParam) {
-        IPage<PointsRecord> page = pointsRecordService.page(pageParam,new QueryWrapper<PointsRecord>().orderByDesc("creationDate"));
+        IPage<PointsRecord> page = pointsRecordService.page(pageParam, new QueryWrapper<PointsRecord>().orderByDesc("creationDate"));
         return R.SUCCESS(page);
     }
 
@@ -73,4 +76,19 @@ public class PointsRecordController {
         pointsRecordService.removeByIds(Arrays.asList(ids));
         return R.SUCCESS();
     }
+
+    @GetMapping("/backendPointsRecordList")
+    @ApiOperation("后台-积分使用记录")
+    public R<IPage<PointsRecordVo>> backendOrderList(PointsRecordPo po) {
+        return R.SUCCESS(pointsRecordService.backendPointsRecordList(po));
+    }
+
+    @GetMapping("/backendPointsRecordListExport")
+    @ApiOperation("后台-积分使用记录-导出")
+    public R<?> backendPointsRecordListExport(HttpServletResponse response, PointsRecordPo po) {
+        pointsRecordService.backendPointsRecordListExport(response,po);
+        return R.SUCCESS();
+    }
+
+
 }

+ 2 - 2
yami-shop-service/pom.xml

@@ -13,8 +13,8 @@
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-compiler-plugin</artifactId>
                 <configuration>
-                    <source>9</source>
-                    <target>9</target>
+                    <source>10</source>
+                    <target>10</target>
                 </configuration>
             </plugin>
         </plugins>

+ 5 - 0
yami-shop-service/src/main/java/com/yami/shop/dao/PointsRecordMapper.java

@@ -3,8 +3,11 @@ package com.yami.shop.dao;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.yami.shop.bean.dto.ScoreDataDto;
 import com.yami.shop.bean.model.PointsRecord;
+import com.yami.shop.bean.po.PointsRecordPo;
+import com.yami.shop.bean.vo.PointsRecordVo;
 import com.yami.shop.common.util.PageParam;
 import org.apache.ibatis.annotations.Param;
 
@@ -27,4 +30,6 @@ public interface PointsRecordMapper extends BaseMapper<PointsRecord> {
 
     List<PointsRecord> findByExpiredPoints(@Param("today")Date today,@Param("yesterday") Date yesterday);
 
+    IPage<PointsRecordVo> backendPointsRecordList(@Param("page") Page<PointsRecordVo> page, @Param("po") PointsRecordPo po);
+    List<PointsRecordVo> backendPointsRecordList2(@Param("po") PointsRecordPo po);
 }

+ 8 - 0
yami-shop-service/src/main/java/com/yami/shop/service/PointsRecordService.java

@@ -1,8 +1,13 @@
 // PointsRecordService.java
 package com.yami.shop.service;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.yami.shop.bean.model.PointsRecord;
+import com.yami.shop.bean.po.PointsRecordPo;
+import com.yami.shop.bean.vo.PointsRecordVo;
+
+import javax.servlet.http.HttpServletResponse;
 
 /**
  * 积分记录详细 Service接口
@@ -14,4 +19,7 @@ public interface PointsRecordService extends IService<PointsRecord> {
 
     void expiredPoints(String todayStr,String yesterdayStr);
 
+    IPage<PointsRecordVo> backendPointsRecordList(PointsRecordPo po);
+
+    void backendPointsRecordListExport(HttpServletResponse response, PointsRecordPo po);
 }

+ 6 - 0
yami-shop-service/src/main/java/com/yami/shop/service/impl/OrderServiceImpl.java

@@ -891,6 +891,12 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
                 if(c.getAddrOrderId() != null) {
                     c.setReceiver(c.getConsigneeName());
                     c.setUserMobile(c.getConsigneeMobile());
+                    if (c.getReceiver() == null){
+                        c.setReceiver(c.getConsigneeName());
+                    }
+                    if (c.getUserMobile() == null){
+                        c.setUserMobile(c.getConsigneeMobile());
+                    }
                 }
             });
         }

+ 31 - 0
yami-shop-service/src/main/java/com/yami/shop/service/impl/PointsRecordServiceImpl.java

@@ -1,14 +1,25 @@
 package com.yami.shop.service.impl;
 
+import com.alibaba.excel.EasyExcel;
+import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy;
+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.yami.shop.bean.model.PointsRecord;
+import com.yami.shop.bean.po.PointsRecordPo;
+import com.yami.shop.bean.vo.PointsRecordVo;
+import com.yami.shop.common.exception.GlobalException;
 import com.yami.shop.dao.PointsRecordMapper;
 import com.yami.shop.service.PointsRecordService;
 import lombok.AllArgsConstructor;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.stereotype.Service;
 
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
 import java.math.BigDecimal;
+import java.net.URLEncoder;
+import java.nio.charset.StandardCharsets;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.time.LocalDate;
@@ -60,6 +71,26 @@ public class PointsRecordServiceImpl extends ServiceImpl<PointsRecordMapper, Poi
         }
     }
 
+    @Override
+    public IPage<PointsRecordVo> backendPointsRecordList(PointsRecordPo po) {
+        return baseMapper.backendPointsRecordList(new Page<>(po.getCurrent(), po.getSize()), po);
+    }
+
+    @Override
+    public void backendPointsRecordListExport(HttpServletResponse response, PointsRecordPo po) {
+        try {
+            List<PointsRecordVo> list = baseMapper.backendPointsRecordList2(po);
+            response.setCharacterEncoding("utf-8");
+            String fileName = URLEncoder.encode("积分使用记录表", StandardCharsets.UTF_8).replaceAll("\\+", "%20");
+            response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + fileName + ".xlsx");
+            EasyExcel.write(response.getOutputStream(), PointsRecordVo.class)
+                    .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy())
+                    .sheet("列表").doWrite(list);
+        } catch (IOException e) {
+            throw new GlobalException("文件下载异常");
+        }
+    }
+
     /**
      * @param dateStr string类型的时间
      * @param type    标识是否为当天

+ 79 - 0
yami-shop-service/src/main/resources/mapper/PointsRecordMapper.xml

@@ -111,5 +111,84 @@
                                         points,variable_points, 4 as points_type,points_audit,expiry_date,expiry_date as creation_date,currently_available_points from tz_points_record   where   expiry_date =#{today}  GROUP BY user_id ,channel_id
                          ) a where a.points>0
     </select>
+    <select id="backendPointsRecordList" resultType="com.yami.shop.bean.vo.PointsRecordVo">
+        SELECT c.order_number, b.real_name,b.user_mobile mobile ,IF(a.points_type in(1,3),CONCAT('+',a.variable_points),CONCAT('-',a.variable_points)) variable_points,a.currently_available_points,a.creation_date,
+               CASE
+                   WHEN a.points_type = 1 THEN '充值'
+                   WHEN a.points_type = 2 THEN '下单'
+                   WHEN a.points_type = 3 THEN '退款'
+                   WHEN a.points_type = 4 THEN '过期'
+                   ELSE '其他'
+                   END AS business_type
+        FROM `tz_points_record` a
+                 LEFT JOIN tz_user b on a.user_id=b.user_id
+                 LEFT JOIN tz_order c on a.order_number=c.order_number
+        <where>
+            <if test="po.mobile != null and po.mobile != ''">
+                AND b.user_mobile LIKE CONCAT("%",#{po.mobile},"%")
+            </if>
+            <if test="po.startTime != null and po.startTime != ''">
+                and a.creation_date&gt;= #{po.startTime}
+            </if>
+            <if test="po.endTime != null and po.endTime != ''">
+                and a.creation_date&lt;= #{po.endTime}
+            </if>
+            <if test="po.businessType != null and po.businessType != ''">
+                <if test="po.businessType == 'CZ'">
+                    AND a.points_type = 1
+                </if>
+                <if test="po.businessType == 'XD'">
+                    AND a.points_type = 2
+                </if>
+                <if test="po.businessType == 'TK'">
+                    AND a.points_type = 3
+                </if>
+                <if test="po.businessType == 'GQ'">
+                    AND a.points_type = 4
+                </if>
+            </if>
+        </where>
+        order by a.creation_date desc
+    </select>
+
+    <select id="backendPointsRecordList2" resultType="com.yami.shop.bean.vo.PointsRecordVo">
+        SELECT c.order_number, b.real_name,b.user_mobile mobile ,IF(a.points_type in(1,3),CONCAT('+',a.variable_points),CONCAT('-',a.variable_points)) variable_points,a.currently_available_points,a.creation_date,
+        CASE
+        WHEN a.points_type = 1 THEN '充值'
+        WHEN a.points_type = 2 THEN '下单'
+        WHEN a.points_type = 3 THEN '退款'
+        WHEN a.points_type = 4 THEN '过期'
+        ELSE '其他'
+        END AS business_type
+        FROM `tz_points_record` a
+        LEFT JOIN tz_user b on a.user_id=b.user_id
+        LEFT JOIN tz_order c on a.order_number=c.order_number
+        <where>
+            <if test="po.mobile != null and po.mobile != ''">
+                AND b.user_mobile LIKE CONCAT("%",#{po.mobile},"%")
+            </if>
+            <if test="po.startTime != null and po.startTime != ''">
+                and a.creation_date&gt;= #{po.startTime}
+            </if>
+            <if test="po.endTime != null and po.endTime != ''">
+                and a.creation_date&lt;= #{po.endTime}
+            </if>
+            <if test="po.businessType != null and po.businessType != ''">
+                <if test="po.businessType == 'CZ'">
+                    AND a.points_type = 1
+                </if>
+                <if test="po.businessType == 'XD'">
+                    AND a.points_type = 2
+                </if>
+                <if test="po.businessType == 'TK'">
+                    AND a.points_type = 3
+                </if>
+                <if test="po.businessType == 'GQ'">
+                    AND a.points_type = 4
+                </if>
+            </if>
+        </where>
+        order by a.creation_date desc
+    </select>
 
 </mapper>