hjp пре 2 недеља
родитељ
комит
a4e1637a05

+ 2 - 0
src/main/java/com/sqx/common/utils/DateUtils.java

@@ -14,6 +14,8 @@ import java.util.Date;
  *
  */
 public class DateUtils {
+    /** 时间格式(yyyy-MM-dd) */
+    public final static String DATE_PATTERN_MONTH = "yyyy-MM";
 	/** 时间格式(yyyy-MM-dd) */
 	public final static String DATE_PATTERN = "yyyy-MM-dd";
 	/** 时间格式(yyyy-MM-dd HH:mm:ss) */

+ 3 - 3
src/main/java/com/sqx/modules/app/controller/UserController.java

@@ -274,7 +274,7 @@ public class UserController {
      */
     @ApiOperation("修改用户信用分")
     @PostMapping("updateUserCredit")
-    public Result updateUserCredit(Long userId, Integer type, Integer score, String remark,Integer isDriver) {
+    public Result updateUserCredit(Long userId, Integer type, Integer score, String remark,String orderNo,Integer isDriver) {
         int maxScore = Integer.parseInt(commonInfoService.findOne(363).getValue());
         if (score <= 0) {
             return Result.error("请填入大于0的数");
@@ -286,13 +286,13 @@ public class UserController {
             if (userEntity.getCreditScore() + score > maxScore) {
                 return Result.error("最多增加" + (maxScore - userEntity.getCreditScore()) + "分");
             }
-            recordService.updateUserCreditRecord(userEntity, 1, score, remark,isDriver);
+            recordService.updateUserCreditRecord(userEntity, 1, score, remark,orderNo,isDriver);
         } else {
             text = "扣除";
             if (userEntity.getCreditScore() < score) {
                 return Result.error("当前用户最多扣除" + userEntity.getCreditScore() + "分");
             }
-            recordService.updateUserCreditRecord(userEntity, 2, score, remark,isDriver);
+            recordService.updateUserCreditRecord(userEntity, 2, score, remark,orderNo,isDriver);
         }
         MessageInfo riderMessageInfo = new MessageInfo();
         riderMessageInfo.setContent("管理员" + text + "您" + score + "信用分,当前信用分" + userEntity.getCreditScore());

+ 9 - 3
src/main/java/com/sqx/modules/creditRecord/controller/AppCreditRecordController.java

@@ -4,6 +4,7 @@ package com.sqx.modules.creditRecord.controller;
 import com.sqx.common.utils.Result;
 import com.sqx.modules.app.annotation.Login;
 import com.sqx.modules.creditRecord.entity.CreditRecord;
+import com.sqx.modules.creditRecord.entity.CreditRecordEntity;
 import com.sqx.modules.creditRecord.service.CreditRecordService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiModelProperty;
@@ -38,9 +39,8 @@ public class AppCreditRecordController {
     @Login
     @GetMapping("getCreditRecordList")
     @ApiOperation("获取信用分记录")
-    public Result getCreditRecordList(@RequestAttribute("userId")Long userId, Integer page, Integer limit, CreditRecord creditRecord,Integer isDriver) {
+    public Result getCreditRecordList(@RequestAttribute("userId")Long userId, Integer page, Integer limit, CreditRecord creditRecord) {
         creditRecord.setRiderUserId(userId);
-        creditRecord.setIsDriver(isDriver);
         return Result.success().put("data", recordService.getCreditRecordList(page, limit, creditRecord));
     }
 
@@ -54,7 +54,13 @@ public class AppCreditRecordController {
     @GetMapping("getScore")
     @ApiOperation("获取信用分")
     public Result getScore(@RequestAttribute("userId") Long userId, Integer isDriver){
-        return Result.success().put("data",recordService.getScore(userId,isDriver));
+        CreditRecordEntity score = recordService.getScore(userId, isDriver);
+        if (score.getDiff() >= 0){
+            score.setSymbol("+");
+        }else{
+            score.setSymbol("");
+        }
+        return Result.success().put("data",score);
     }
 
     @Login

+ 4 - 2
src/main/java/com/sqx/modules/creditRecord/dao/CreditRecordDao.java

@@ -3,10 +3,12 @@ package com.sqx.modules.creditRecord.dao;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.sqx.modules.creditRecord.entity.CreditRecord;
 import com.sqx.modules.creditRecord.entity.CreditRecordEntity;
+import com.sqx.modules.creditRecord.entity.CreditRecordMapEntity;
 import org.apache.ibatis.annotations.MapKey;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 
+import java.util.List;
 import java.util.Map;
 
 /**
@@ -22,7 +24,7 @@ public interface CreditRecordDao extends BaseMapper<CreditRecord> {
 
     CreditRecordEntity getScore(@Param("userId") Long userId, @Param("isDriver")Integer isDriver);
 
-    @MapKey("month")
-    Map<String,Object> getFilledScore(@Param("userId") Long userId, @Param("isDriver")Integer isDriver,@Param("several")Integer several);
+
+    List<CreditRecordMapEntity> getFilledScore(@Param("userId") Long userId, @Param("isDriver")Integer isDriver, @Param("several")Integer several);
 
 }

+ 3 - 0
src/main/java/com/sqx/modules/creditRecord/entity/CreditRecord.java

@@ -97,4 +97,7 @@ public class CreditRecord implements Serializable {
 
     @ApiModelProperty("0-用户,1-司机")
     private Integer isDriver;
+
+    @ApiModelProperty("订单号")
+    private String ordersNo;
 }

+ 5 - 0
src/main/java/com/sqx/modules/creditRecord/entity/CreditRecordEntity.java

@@ -21,4 +21,9 @@ public class CreditRecordEntity {
      * 分数差
      */
     public Integer diff;
+
+    /**
+     * 符号
+     */
+    public String symbol;
 }

+ 11 - 0
src/main/java/com/sqx/modules/creditRecord/entity/CreditRecordMapEntity.java

@@ -0,0 +1,11 @@
+package com.sqx.modules.creditRecord.entity;
+
+import lombok.Data;
+
+@Data
+public class CreditRecordMapEntity {
+
+    private String month;
+
+    private Integer filledScore;
+}

+ 1 - 1
src/main/java/com/sqx/modules/creditRecord/service/CreditRecordService.java

@@ -20,7 +20,7 @@ public interface CreditRecordService extends IService<CreditRecord> {
 
     IPage<CreditRecord> getCreditRecordList(Integer page, Integer limit, CreditRecord creditRecord);
 
-    void updateUserCreditRecord(UserEntity userEntity, Integer type, Integer score, String remark,Integer isDriver);
+    void updateUserCreditRecord(UserEntity userEntity, Integer type, Integer score, String remark,String orderNo,Integer isDriver);
 
     CreditRecordEntity getScore(Long userId, Integer isDriver);
 

+ 30 - 6
src/main/java/com/sqx/modules/creditRecord/service/impl/CreditRecordServiceImpl.java

@@ -4,20 +4,26 @@ 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.sqx.common.utils.DateUtils;
 import com.sqx.common.utils.ShiroUtils;
 import com.sqx.modules.app.entity.UserEntity;
 import com.sqx.modules.app.service.UserService;
 import com.sqx.modules.creditRecord.dao.CreditRecordDao;
 import com.sqx.modules.creditRecord.entity.CreditRecord;
 import com.sqx.modules.creditRecord.entity.CreditRecordEntity;
+import com.sqx.modules.creditRecord.entity.CreditRecordMapEntity;
 import com.sqx.modules.creditRecord.service.CreditRecordService;
 import com.sqx.modules.sys.entity.SysUserEntity;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
 import java.time.LocalDateTime;
+import java.util.Date;
 import java.util.LinkedHashMap;
+import java.util.List;
 import java.util.Map;
 
 /**
@@ -49,7 +55,7 @@ public class CreditRecordServiceImpl extends ServiceImpl<CreditRecordDao, Credit
     }
 
     @Override
-    public void updateUserCreditRecord(UserEntity userEntity, Integer type, Integer score, String remark,Integer isDriver) {
+    public void updateUserCreditRecord(UserEntity userEntity, Integer type, Integer score, String remark,String orderNo,Integer isDriver) {
         CreditRecord creditRecord = new CreditRecord();
         creditRecord.setCreateTime(LocalDateTime.now());
         creditRecord.setLastCreditScore(userEntity.getCreditScore());
@@ -74,6 +80,7 @@ public class CreditRecordServiceImpl extends ServiceImpl<CreditRecordDao, Credit
             creditRecord.setSysUserName(userEntity.getUserName());
         }
         creditRecord.setReason(remark);
+        creditRecord.setOrdersNo(orderNo);
         creditRecord.setIsDriver(isDriver);
         baseMapper.insert(creditRecord);
 
@@ -91,12 +98,29 @@ public class CreditRecordServiceImpl extends ServiceImpl<CreditRecordDao, Credit
     }
 
     public Map<String,Object> getFilledScore(Long userId, Integer isDriver,Integer several){
-
+        //获取过滤时间并格式化
+        String createTime = userService.selectUserById(userId).getCreateTime();
+        Date parse = null;
+        try {
+            parse = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(createTime);
+        } catch (ParseException e) {
+            e.printStackTrace();
+        }
+        String format = DateUtils.format(parse, DateUtils.DATE_PATTERN_MONTH);
+        //从数据库取所需数据
         Map<String, Object> orderedMap = new LinkedHashMap<>();
-        creditRecordDao.getFilledScore(userId,isDriver,several).entrySet().stream()
-                .sorted(Map.Entry.comparingByKey()) // 按月份排序;如不需要可删除
-                .forEachOrdered(e -> orderedMap.put(e.getKey(), e.getValue()));
-
+        List<CreditRecordMapEntity> filledScore = creditRecordDao.getFilledScore(userId, isDriver, several);
+        for (CreditRecordMapEntity c :filledScore) {
+            orderedMap.put(c.getMonth(),c.getFilledScore());
+        }
+        //过滤创建时间之前的数据
+        Map<String, Object> filtered = new LinkedHashMap<>();
+        for (Map.Entry<String, Object> entry : orderedMap.entrySet()) {
+            String month = entry.getKey(); // 格式:yyyy-MM
+            if (month.compareTo(format) >= 0) {
+                filtered.put(month,entry.getValue());
+            }
+        }
         return orderedMap;
     }
 }

+ 2 - 2
src/main/java/com/sqx/modules/orders/service/impl/OrdersServiceImp.java

@@ -1141,9 +1141,9 @@ public class OrdersServiceImp extends ServiceImpl<OrdersDao, Orders> implements
                 UserEntity userEntity = userService.selectUserById(driver.getUserId());
                 String score = commonInfoService.findOne(364).getValue();
                 if (isDriver == 0){
-                    creditRecordService.updateUserCreditRecord(userEntity, 2, Integer.parseInt(score), "取消订单扣除信用分,订单号:"+orders.getOrdersNo(),isDriver);
+                    creditRecordService.updateUserCreditRecord(userEntity, 2, Integer.parseInt(score), "取消订单扣除信用分",orders.getOrdersNo(),isDriver);
                 } else if (isDriver == 1){
-                    creditRecordService.updateUserCreditRecord(userEntity, 2, Integer.parseInt(score), "取消订单扣除信用分,订单号:"+orders.getOrdersNo(),isDriver);
+                    creditRecordService.updateUserCreditRecord(userEntity, 2, Integer.parseInt(score), "取消订单扣除信用分",orders.getOrdersNo(),isDriver);
                 }
                 //清空师傅的信息和师傅的上级  订单改为待接单
                 baseMapper.update(null, Wrappers.<Orders>lambdaUpdate()

+ 1 - 1
src/main/resources/mapper/creditRecord/CreditRecordDao.xml

@@ -37,7 +37,7 @@
         ) AS last_month
     </select>
 
-    <select id="getFilledScore" resultType="map">
+    <select id="getFilledScore" resultType="com.sqx.modules.creditRecord.entity.CreditRecordMapEntity">
         <![CDATA[
         WITH RECURSIVE months AS (
           SELECT DATE_FORMAT(DATE_SUB(CURDATE(), INTERVAL #{several}-1 MONTH), '%Y-%m') AS month_val, 1 AS step