瀏覽代碼

Merge remote-tracking branch 'origin/dev_v1.3.8_20221107' into dev_v1.3.8_20221107

# Conflicts:
#	service.md
Eric 2 年之前
父節點
當前提交
801202348b

+ 12 - 2
cooleshow-mall/mall-portal/src/main/java/com/yonge/cooleshow/portal/service/impl/OmsPortalOrderServiceImpl.java

@@ -1342,8 +1342,18 @@ public class OmsPortalOrderServiceImpl implements OmsPortalOrderService {
         BigDecimal reduce = orderItemList.stream()
                                          .map(omsOrderItem -> omsOrderItem.getCouponAmount().multiply(BigDecimal.valueOf(omsOrderItem.getProductQuantity())))
                                          .reduce(BigDecimal.ZERO, BigDecimal::add);
-        OmsOrderItem omsOrderItem = orderItemList.get(0);
-        omsOrderItem.setPrecisionAmount(coupon.subtract(reduce));
+        BigDecimal precisionAmount = coupon.subtract(reduce);
+        for (OmsOrderItem omsOrderItem : orderItemList) {
+            BigDecimal multiply = omsOrderItem.getProductPrice()
+                                              .multiply(BigDecimal.valueOf(omsOrderItem.getProductQuantity())).subtract(omsOrderItem.getCouponAmount().multiply(BigDecimal.valueOf(omsOrderItem.getProductQuantity())));
+            if (multiply.compareTo(precisionAmount) >=0) {
+                omsOrderItem.setPrecisionAmount(precisionAmount);
+                break;
+            } else {
+                omsOrderItem.setPrecisionAmount(multiply);
+                precisionAmount = precisionAmount.subtract(multiply);
+            }
+        }
 
     }
 

+ 24 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/search/ReturnVisitSearch.java

@@ -5,6 +5,8 @@ import com.yonge.toolset.base.page.QueryInfo;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 
+import java.util.Date;
+
 /**
  * @Author: liweifan
  * @Data: 2022-11-08 15:37:44
@@ -25,6 +27,28 @@ public class ReturnVisitSearch extends QueryInfo{
 	@ApiModelProperty("回访标题")
 	private String title;
 
+	@ApiModelProperty("回访开始时间")
+	private Date startTime;
+
+	@ApiModelProperty("回访结束时间")
+	private Date endTime;
+
+	public Date getStartTime() {
+		return startTime;
+	}
+
+	public void setStartTime(Date startTime) {
+		this.startTime = startTime;
+	}
+
+	public Date getEndTime() {
+		return endTime;
+	}
+
+	public void setEndTime(Date endTime) {
+		this.endTime = endTime;
+	}
+
 	public Long getUserId() {
 		return userId;
 	}

+ 4 - 3
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/ReturnVisit.java

@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.yonge.cooleshow.biz.dal.enums.ClientEnum;
+import com.yonge.cooleshow.common.enums.SysUserType;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import org.springframework.format.annotation.DateTimeFormat;
@@ -34,7 +35,7 @@ public class ReturnVisit implements Serializable {
     @ApiModelProperty(value = "用户类型 ",required = true)
     @TableField(value = "client_type_")
     @NotNull(message = "用户类型不能为空")
-    private ClientEnum clientType;
+    private SysUserType clientType;
 
     @ApiModelProperty(value = "回访标题 ",required = true)
     @TableField(value = "title_")
@@ -72,11 +73,11 @@ public class ReturnVisit implements Serializable {
         this.userId = userId;
     }
 
-    public ClientEnum getClientType() {
+    public SysUserType getClientType() {
         return clientType;
     }
 
-    public void setClientType(ClientEnum clientType) {
+    public void setClientType(SysUserType clientType) {
         this.clientType = clientType;
     }
 

+ 34 - 7
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/ReturnVisitServiceImpl.java

@@ -2,20 +2,31 @@ package com.yonge.cooleshow.biz.dal.service.impl;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import org.springframework.stereotype.Service;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import com.yonge.cooleshow.biz.dal.entity.ReturnVisit;
-import com.yonge.cooleshow.biz.dal.vo.ReturnVisitVo;
-import com.yonge.cooleshow.biz.dal.dto.search.ReturnVisitSearch;
 import com.yonge.cooleshow.biz.dal.dao.ReturnVisitDao;
+import com.yonge.cooleshow.biz.dal.dto.search.ReturnVisitSearch;
+import com.yonge.cooleshow.biz.dal.entity.ReturnVisit;
+import com.yonge.cooleshow.biz.dal.entity.SysUser;
+import com.yonge.cooleshow.biz.dal.mapper.SysUserMapper;
 import com.yonge.cooleshow.biz.dal.service.ReturnVisitService;
+import com.yonge.cooleshow.biz.dal.vo.ReturnVisitVo;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
+
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
 
 
 @Service
 public class ReturnVisitServiceImpl extends ServiceImpl<ReturnVisitDao, ReturnVisit> implements ReturnVisitService {
     private final static Logger log = LoggerFactory.getLogger(ReturnVisitServiceImpl.class);
 
+    @Autowired
+    private SysUserMapper sysUserMapper;
+
 	@Override
     public ReturnVisitVo detail(Long id) {
         return baseMapper.detail(id);
@@ -23,7 +34,23 @@ public class ReturnVisitServiceImpl extends ServiceImpl<ReturnVisitDao, ReturnVi
     
     @Override
     public IPage<ReturnVisitVo> selectPage(IPage<ReturnVisitVo> page, ReturnVisitSearch query){
-        return page.setRecords(baseMapper.selectPage(page, query));
+        IPage<ReturnVisitVo> returnVisitVoIPage = page.setRecords(baseMapper.selectPage(page, query));
+        List<ReturnVisitVo> records =
+                returnVisitVoIPage.getRecords();
+        if (CollectionUtils.isEmpty(records)) {
+            return returnVisitVoIPage;
+        }
+        List<Long> collect = records.stream().map(ReturnVisitVo::getCreateBy).collect(Collectors.toList());
+
+
+        List<SysUser> sysUsers = sysUserMapper.selectBatchIds(collect);
+        Map<Long, String> userIdMap = sysUsers.stream().collect(Collectors.toMap(SysUser::getId, SysUser::getUsername));
+
+        for (ReturnVisitVo record : records) {
+            record.setVisitUsername(userIdMap.get(record.getCreateBy()));
+        }
+        returnVisitVoIPage.setRecords(records);
+        return returnVisitVoIPage;
     }
 	
 }

+ 22 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/ReturnVisitVo.java

@@ -17,6 +17,28 @@ public class ReturnVisitVo extends ReturnVisit{
 	@ApiModelProperty("回访用户名")
 	private String username;
 
+	@ApiModelProperty("手机号")
+	private String phone;
+
+	@ApiModelProperty("回访人, 谁回访的")
+	private String visitUsername;
+
+	public String getVisitUsername() {
+		return visitUsername;
+	}
+
+	public void setVisitUsername(String visitUsername) {
+		this.visitUsername = visitUsername;
+	}
+
+	public String getPhone() {
+		return phone;
+	}
+
+	public void setPhone(String phone) {
+		this.phone = phone;
+	}
+
 	public String getUsername() {
 		return username;
 	}

+ 13 - 0
cooleshow-user/user-biz/src/main/resources/config/mybatis/ReturnVisitMapper.xml

@@ -33,6 +33,7 @@
 		SELECT         
         	<include refid="baseColumns" />
         ,su.username_ as username
+        ,su.phone_ as phone
 		FROM return_visit t
         left join sys_user su on t.user_id_ = su.id_
         <where>
@@ -48,6 +49,18 @@
             <if test="param.title != null and param.title != ''">
                 and t.title_ like '%${param.title}%'
             </if>
+            <if test="param.startTime != null">
+                and t.create_time_ &gt;= #{param.startTime}
+            </if>
+            <if test="param.endTime != null">
+                and t.create_time_ &lt;= #{param.endTime}
+            </if>
+            <if test="param.search !=null and param.search != ''">
+                and (su.id_ like '%${param.search}%'
+                    or su.username_ like '%${param.search}%'
+                    or su.phone_ like '%${param.search}%'
+                )
+            </if>
         </where>
         order by t.id_ desc
 	</select>