From cf56395dabdba59cf008bce2a6f36d24f51988b2 Mon Sep 17 00:00:00 2001 From: xiezhijun <15270898033@163.com> Date: Wed, 13 Jan 2021 18:39:17 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E6=88=90=E5=8A=A0=E4=B8=8A=E5=90=88?= =?UTF-8?q?=E8=AE=A1=E3=80=81Excel=E5=AF=BC=E5=87=BA;=E6=89=93=E5=8D=A1?= =?UTF-8?q?=E8=AE=B0=E5=BD=95=E5=8A=A0=E4=B8=8A=E5=A7=93=E5=90=8D=E3=80=81?= =?UTF-8?q?=E8=90=A5=E5=85=BB=E5=B8=88;=E4=BD=93=E5=BE=81=E8=B0=83?= =?UTF-8?q?=E6=9F=A5=E5=8A=A0=E4=B8=8A=E5=A4=87=E6=B3=A8=E9=A1=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../custom/SysCommisionController.java | 12 +- .../custom/SysCustomerController.java | 8 ++ .../controller/custom/SysOrderController.java | 7 +- .../custom/SysOrderPauseController.java | 2 - .../custom/SysWxUserLogController.java | 8 +- .../com/stdiet/common/utils/StringUtils.java | 7 ++ .../custom/domain/SysCommissionDayDetail.java | 100 +++-------------- .../stdiet/custom/domain/SysWxUserLog.java | 39 +++++++ .../request/CustomerInvestigateRequest.java | 12 ++ .../dto/response/CustomerListResponse.java | 12 ++ .../service/ISysCommissionDayService.java | 13 +++ .../impl/SysCommissionDayServiceImpl.java | 35 +++++- .../mapper/custom/SysCustomerMapper.xml | 3 +- .../mapper/custom/SysWxUserLogMapper.xml | 16 ++- stdiet-ui/src/api/custom/commision.js | 10 ++ .../custom/commision/detail_day/index.vue | 31 ++++-- stdiet-ui/src/views/custom/customer/index.vue | 104 +++++++++--------- .../custom/investigate/questionnaire.vue | 8 +- .../src/views/custom/wxUserLog/index.vue | 5 +- 19 files changed, 267 insertions(+), 165 deletions(-) diff --git a/stdiet-admin/src/main/java/com/stdiet/web/controller/custom/SysCommisionController.java b/stdiet-admin/src/main/java/com/stdiet/web/controller/custom/SysCommisionController.java index 7a13103c0..defba24c1 100644 --- a/stdiet-admin/src/main/java/com/stdiet/web/controller/custom/SysCommisionController.java +++ b/stdiet-admin/src/main/java/com/stdiet/web/controller/custom/SysCommisionController.java @@ -198,5 +198,15 @@ public class SysCommisionController extends BaseController { return getDataTable(sysCommissionDayService.calculateCommissionByDay(sysCommision)); } - + /** + * 导出按天计算提成详细列表 + */ + @PreAuthorize("@ss.hasPermi('commisionDay:detail:export')") + @Log(title = "导出按天计算提成详细列表", businessType = BusinessType.EXPORT) + @GetMapping("/exportDetailDay") + public AjaxResult exportDetailDay(SysCommision sysCommision) { + ExcelUtil util = new ExcelUtil<>(SysCommissionDayDetail.class); + List list = sysCommissionDayService.calculateCommissionByDay(sysCommision); + return util.exportExcel(list, "commision"); + } } diff --git a/stdiet-admin/src/main/java/com/stdiet/web/controller/custom/SysCustomerController.java b/stdiet-admin/src/main/java/com/stdiet/web/controller/custom/SysCustomerController.java index 34780a771..1381c6f1f 100644 --- a/stdiet-admin/src/main/java/com/stdiet/web/controller/custom/SysCustomerController.java +++ b/stdiet-admin/src/main/java/com/stdiet/web/controller/custom/SysCustomerController.java @@ -3,6 +3,7 @@ package com.stdiet.web.controller.custom; import java.util.ArrayList; import java.util.List; +import com.stdiet.common.utils.StringUtils; import com.stdiet.custom.domain.SysPhysicalSigns; import com.stdiet.common.utils.bean.ObjectUtils; @@ -49,6 +50,13 @@ public class SysCustomerController extends BaseController { startPage(); List list = sysCustomerService.selectSysCustomerAndSignList(sysCustomer); + if(list != null && list.size() > 0){ + for(SysCustomer sysCus : list){ + if(StringUtils.isNotEmpty(sysCus.getPhone())){ + sysCus.setPhone(StringUtils.hiddenPhoneNumber(sysCus.getPhone())); + } + } + } return getDataTable(list); } diff --git a/stdiet-admin/src/main/java/com/stdiet/web/controller/custom/SysOrderController.java b/stdiet-admin/src/main/java/com/stdiet/web/controller/custom/SysOrderController.java index c1c85272d..abdc1c6b1 100644 --- a/stdiet-admin/src/main/java/com/stdiet/web/controller/custom/SysOrderController.java +++ b/stdiet-admin/src/main/java/com/stdiet/web/controller/custom/SysOrderController.java @@ -4,6 +4,7 @@ import com.stdiet.common.annotation.Log; import com.stdiet.common.core.domain.AjaxResult; import com.stdiet.common.core.domain.entity.SysUser; import com.stdiet.common.enums.BusinessType; +import com.stdiet.common.utils.StringUtils; import com.stdiet.common.utils.poi.ExcelUtil; import com.stdiet.custom.controller.OrderBaseController; import com.stdiet.custom.domain.SysOrder; @@ -77,9 +78,9 @@ public class SysOrderController extends OrderBaseController { order.setOperatorAssis(user.getNickName()); } } - /*if (order.getPhone() != null && !order.getPhone().equals("")) { - order.setPhone(order.getPhone().replaceAll("(\\d{3})\\d{4}(\\d{4})", "$1****$2")); - }*/ + if (StringUtils.isNotEmpty(order.getPhone())) { + order.setPhone(StringUtils.hiddenPhoneNumber(order.getPhone())); + } } return getOrderDataTable(list, totalAmount); } diff --git a/stdiet-admin/src/main/java/com/stdiet/web/controller/custom/SysOrderPauseController.java b/stdiet-admin/src/main/java/com/stdiet/web/controller/custom/SysOrderPauseController.java index fac987123..47be4db42 100644 --- a/stdiet-admin/src/main/java/com/stdiet/web/controller/custom/SysOrderPauseController.java +++ b/stdiet-admin/src/main/java/com/stdiet/web/controller/custom/SysOrderPauseController.java @@ -77,8 +77,6 @@ public class SysOrderPauseController extends BaseController @PostMapping public AjaxResult add(@RequestBody SysOrderPause sysOrderPause) { - SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd"); - System.out.println(simpleDateFormat.format(sysOrderPause.getPauseStartDate())); return toAjax(sysOrderPauseService.insertSysOrderPause(sysOrderPause)); } diff --git a/stdiet-admin/src/main/java/com/stdiet/web/controller/custom/SysWxUserLogController.java b/stdiet-admin/src/main/java/com/stdiet/web/controller/custom/SysWxUserLogController.java index 959ae2e85..a7454ae6a 100644 --- a/stdiet-admin/src/main/java/com/stdiet/web/controller/custom/SysWxUserLogController.java +++ b/stdiet-admin/src/main/java/com/stdiet/web/controller/custom/SysWxUserLogController.java @@ -47,8 +47,14 @@ public class SysWxUserLogController extends BaseController { List list = sysWxUserLogService.selectSysWxUserLogList(sysWxUserLog); for (SysWxUserLog userLog : list) { + if(userLog.getCustomerMessage() != null){ + String[] message = userLog.getCustomerMessage().split(","); + userLog.setCustomer(message[0]); + userLog.setNutritionist(message.length > 1 ? message[1] : ""); + } if (StringUtils.isNotEmpty(userLog.getPhone())) { - userLog.setPhone(userLog.getPhone().replaceAll("(\\d{3})\\d{4}(\\d{4})", "$1****$2")); + userLog.setPhone(StringUtils.hiddenPhoneNumber(userLog.getPhone())); + //userLog.setPhone(userLog.getPhone().replaceAll("(\\d{3})\\d{4}(\\d{4})", "$1****$2")); } } diff --git a/stdiet-common/src/main/java/com/stdiet/common/utils/StringUtils.java b/stdiet-common/src/main/java/com/stdiet/common/utils/StringUtils.java index 04e24810b..c7e999dbe 100644 --- a/stdiet-common/src/main/java/com/stdiet/common/utils/StringUtils.java +++ b/stdiet-common/src/main/java/com/stdiet/common/utils/StringUtils.java @@ -456,4 +456,11 @@ public class StringUtils extends org.apache.commons.lang3.StringUtils { return (T) obj; } + + /** + * 手机号隐式处理 + * */ + public static String hiddenPhoneNumber(String phoneNumber){ + return phoneNumber.replaceAll("(\\d{3})\\d{4}(\\d{4})", "$1****$2"); + } } \ No newline at end of file diff --git a/stdiet-custom/src/main/java/com/stdiet/custom/domain/SysCommissionDayDetail.java b/stdiet-custom/src/main/java/com/stdiet/custom/domain/SysCommissionDayDetail.java index 20aaead1a..85d868f62 100644 --- a/stdiet-custom/src/main/java/com/stdiet/custom/domain/SysCommissionDayDetail.java +++ b/stdiet-custom/src/main/java/com/stdiet/custom/domain/SysCommissionDayDetail.java @@ -1,5 +1,6 @@ package com.stdiet.custom.domain; +import com.stdiet.common.annotation.Excel; import com.stdiet.common.core.domain.BaseEntity; import java.math.BigDecimal; @@ -14,6 +15,7 @@ public class SysCommissionDayDetail extends BaseEntity { private Long userId; //用户姓名 + @Excel(name = "业务员") private String nickName; //用户账户 @@ -23,38 +25,20 @@ public class SysCommissionDayDetail extends BaseEntity { private Long postId; //岗位名称 + @Excel(name = "岗位名称") private String postName; + @Excel(name = "总提成") private BigDecimal totalCommissionAmount; + @Excel(name = "已发放提成") private BigDecimal totalHasSentCommissionAmount; + @Excel(name = "未发放提成") private BigDecimal totalNotSentCommissionAmount; private List> sendDetailList; - - //提成比例 - private Float rate; - - //订单成交总额 - private BigDecimal orderTotalAmount; - - //服务总天数 - private Integer serverTotalDay; - - //服务总额(每笔订单的服务天数 * 每天金额,相加) - private BigDecimal serverTotalAmount; - - //服务订单总数量 - private Integer serverOrderTotalCount; - - //服务暂停总天数 - private Integer serverOrderPauseTotalDay; - - //服务提成金额 - private BigDecimal commissionTotalAmount; - public Long getUserId() { return userId; } @@ -71,68 +55,12 @@ public class SysCommissionDayDetail extends BaseEntity { this.nickName = nickName; } - public String getPostName() { - return postName; + public String getUserName() { + return userName; } - public void setPostName(String postName) { - this.postName = postName; - } - - public Float getRate() { - return rate; - } - - public void setRate(Float rate) { - this.rate = rate; - } - - public BigDecimal getOrderTotalAmount() { - return orderTotalAmount; - } - - public void setOrderTotalAmount(BigDecimal orderTotalAmount) { - this.orderTotalAmount = orderTotalAmount; - } - - public Integer getServerTotalDay() { - return serverTotalDay; - } - - public void setServerTotalDay(Integer serverTotalDay) { - this.serverTotalDay = serverTotalDay; - } - - public BigDecimal getServerTotalAmount() { - return serverTotalAmount; - } - - public void setServerTotalAmount(BigDecimal serverTotalAmount) { - this.serverTotalAmount = serverTotalAmount; - } - - public Integer getServerOrderTotalCount() { - return serverOrderTotalCount; - } - - public void setServerOrderTotalCount(Integer serverOrderTotalCount) { - this.serverOrderTotalCount = serverOrderTotalCount; - } - - public Integer getServerOrderPauseTotalDay() { - return serverOrderPauseTotalDay; - } - - public void setServerOrderPauseTotalDay(Integer serverOrderPauseTotalDay) { - this.serverOrderPauseTotalDay = serverOrderPauseTotalDay; - } - - public BigDecimal getCommissionTotalAmount() { - return commissionTotalAmount; - } - - public void setCommissionTotalAmount(BigDecimal commissionTotalAmount) { - this.commissionTotalAmount = commissionTotalAmount; + public void setUserName(String userName) { + this.userName = userName; } public Long getPostId() { @@ -143,12 +71,12 @@ public class SysCommissionDayDetail extends BaseEntity { this.postId = postId; } - public String getUserName() { - return userName; + public String getPostName() { + return postName; } - public void setUserName(String userName) { - this.userName = userName; + public void setPostName(String postName) { + this.postName = postName; } public BigDecimal getTotalCommissionAmount() { diff --git a/stdiet-custom/src/main/java/com/stdiet/custom/domain/SysWxUserLog.java b/stdiet-custom/src/main/java/com/stdiet/custom/domain/SysWxUserLog.java index 2ec236ec2..a3f414f65 100644 --- a/stdiet-custom/src/main/java/com/stdiet/custom/domain/SysWxUserLog.java +++ b/stdiet-custom/src/main/java/com/stdiet/custom/domain/SysWxUserLog.java @@ -68,6 +68,21 @@ public class SysWxUserLog extends BaseEntity @JsonFormat(pattern = "yyyy-MM-dd") private Date logTime; + /** 非持久字段,客户姓名 + 营养师姓名,使用 , 隔开,用于接收sql查询返回字段 */ + private String customerMessage; + + /** + * 非持久化字段,营养师 + */ + @Excel(name = "姓名") + private String customer; + + /** + * 非持久化字段,营养师 + */ + @Excel(name = "营养师") + private String nutritionist; + public void setLogTime(Date logTime) { this.logTime = logTime; } @@ -185,6 +200,30 @@ public class SysWxUserLog extends BaseEntity return water; } + public String getCustomerMessage() { + return customerMessage; + } + + public void setCustomerMessage(String customerMessage) { + this.customerMessage = customerMessage; + } + + public String getCustomer() { + return customer; + } + + public void setCustomer(String customer) { + this.customer = customer; + } + + public String getNutritionist() { + return nutritionist; + } + + public void setNutritionist(String nutritionist) { + this.nutritionist = nutritionist; + } + @Override public String toString() { return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) diff --git a/stdiet-custom/src/main/java/com/stdiet/custom/dto/request/CustomerInvestigateRequest.java b/stdiet-custom/src/main/java/com/stdiet/custom/dto/request/CustomerInvestigateRequest.java index 72976d3f4..0f30aa7b0 100644 --- a/stdiet-custom/src/main/java/com/stdiet/custom/dto/request/CustomerInvestigateRequest.java +++ b/stdiet-custom/src/main/java/com/stdiet/custom/dto/request/CustomerInvestigateRequest.java @@ -144,6 +144,10 @@ public class CustomerInvestigateRequest extends BaseEntity @Excel(name = "减脂经历") private String experience; + /** 备注 */ + @Excel(name = "备注") + private String comments; + public Long getId() { return id; } @@ -399,4 +403,12 @@ public class CustomerInvestigateRequest extends BaseEntity public void setExperience(String experience) { this.experience = experience; } + + public String getComments() { + return comments; + } + + public void setComments(String comments) { + this.comments = comments; + } } \ No newline at end of file diff --git a/stdiet-custom/src/main/java/com/stdiet/custom/dto/response/CustomerListResponse.java b/stdiet-custom/src/main/java/com/stdiet/custom/dto/response/CustomerListResponse.java index d2781a59e..2f17771b2 100644 --- a/stdiet-custom/src/main/java/com/stdiet/custom/dto/response/CustomerListResponse.java +++ b/stdiet-custom/src/main/java/com/stdiet/custom/dto/response/CustomerListResponse.java @@ -136,6 +136,10 @@ public class CustomerListResponse extends BaseEntity @Excel(name = "减脂遇到的困难") private String difficulty; + /** 备注 */ + @Excel(name = "备注") + private String comments; + public Long getId() { return id; } @@ -377,4 +381,12 @@ public class CustomerListResponse extends BaseEntity public void setCreateTime(Date createTime) { this.createTime = createTime; } + + public String getComments() { + return comments; + } + + public void setComments(String comments) { + this.comments = comments; + } } \ No newline at end of file diff --git a/stdiet-custom/src/main/java/com/stdiet/custom/service/ISysCommissionDayService.java b/stdiet-custom/src/main/java/com/stdiet/custom/service/ISysCommissionDayService.java index 0e2d54440..465e25a71 100644 --- a/stdiet-custom/src/main/java/com/stdiet/custom/service/ISysCommissionDayService.java +++ b/stdiet-custom/src/main/java/com/stdiet/custom/service/ISysCommissionDayService.java @@ -5,6 +5,7 @@ import com.stdiet.custom.domain.SysCommissionDayDetail; import com.stdiet.custom.domain.SysOrder; import com.stdiet.custom.domain.SysOrderCommisionDayDetail; +import java.time.LocalDate; import java.util.Date; import java.util.List; import java.util.Map; @@ -17,6 +18,18 @@ import java.util.Map; */ public interface ISysCommissionDayService { + /** + * 根据订单列表按天计算营养师、售后提成 + * @param sysCommision + * @return + */ List calculateCommissionByDay(SysCommision sysCommision); + /** + * 根据订单ID计算该笔订单的服务到期时间 + * @param orderId + * @return + */ + LocalDate getServerEndDate(Long orderId); + } diff --git a/stdiet-custom/src/main/java/com/stdiet/custom/service/impl/SysCommissionDayServiceImpl.java b/stdiet-custom/src/main/java/com/stdiet/custom/service/impl/SysCommissionDayServiceImpl.java index 438833960..616534e38 100644 --- a/stdiet-custom/src/main/java/com/stdiet/custom/service/impl/SysCommissionDayServiceImpl.java +++ b/stdiet-custom/src/main/java/com/stdiet/custom/service/impl/SysCommissionDayServiceImpl.java @@ -32,6 +32,11 @@ public class SysCommissionDayServiceImpl implements ISysCommissionDayService { List result = new ArrayList<>(); //查询用户 List list = sysCommisionMapper.selectSysCommisionDayDetail(sysCommision); + //合计 + SysCommissionDayDetail total = new SysCommissionDayDetail(); + total.setTotalCommissionAmount(new BigDecimal(0)); + total.setTotalHasSentCommissionAmount(new BigDecimal(0)); + total.setTotalNotSentCommissionAmount(new BigDecimal(0)); if(list != null && list.size() > 0){ Map> orderDetailMap = getOrderByList(sysCommision.getUserId()); SysCommissionDayDetail sysCommissionDayDetail = null; @@ -41,16 +46,37 @@ public class SysCommissionDayServiceImpl implements ISysCommissionDayService { sysCommissionDayDetail.setNickName(commision.getUserName()); sysCommissionDayDetail.setPostId(commision.getPostId()); sysCommissionDayDetail.setPostName(commision.getPostName()); - sysCommissionDayDetail.setOrderTotalAmount(commision.getAmount()); - //获取查询时间 - //LocalDate localDate = StringUtils.isEmpty(sysCommision.getBeginTime()) ? LocalDate.now() : LocalDate.parse(sysCommision.getBeginTime(), DateTimeFormatter.ofPattern("yyyy-MM-dd")); dealServerOrderCommissionDetail(orderDetailMap.get(sysCommissionDayDetail.getUserId()), sysCommissionDayDetail); result.add(sysCommissionDayDetail); + //统计所以用户总提成、已发放提成、未发放提成 + total.setTotalCommissionAmount(total.getTotalCommissionAmount().add(sysCommissionDayDetail.getTotalCommissionAmount())); + total.setTotalHasSentCommissionAmount(total.getTotalHasSentCommissionAmount().add(sysCommissionDayDetail.getTotalHasSentCommissionAmount())); + total.setTotalNotSentCommissionAmount(total.getTotalNotSentCommissionAmount().add(sysCommissionDayDetail.getTotalNotSentCommissionAmount())); } } + total.setPostName("胜唐体控"); + total.setNickName("合计"); + result.add(total); return result; } + @Override + public LocalDate getServerEndDate(Long orderId){ + SysOrder sysOrder = sysOrderMapper.selectSysOrderById(orderId); + if(sysOrder != null){ + SysOrderPause sysOrderPause = new SysOrderPause(); + sysOrderPause.setOrderId(orderId); + List pausesList = sysOrderPauseMapper.selectSysOrderPauseList(sysOrderPause); + //每年每月暂停天数,key为年份加月份,如:2021年1月=20211 + Map everyYearMonthPauseDay = getEveryYearMonthPauseDay(pausesList); + //该笔订单暂停总天数 + int pauseTotalDay = getTotalByMap(everyYearMonthPauseDay); + + return getServerEndDate(DateUtils.dateToLocalDate(sysOrder.getStartTime()), sysOrder.getServeTimeId().intValue()/30, sysOrder.getGiveServeDay(), pauseTotalDay); + } + return null; + } + /** * 根据用户ID统计出该用户在该月所有订单的服务数量、服务总天数、服务订单总额、暂停总天数 @@ -60,8 +86,6 @@ public class SysCommissionDayServiceImpl implements ISysCommissionDayService { BigDecimal totalCommissionAmount = new BigDecimal(0); //已发放提成 BigDecimal totalHasSentCommissionAmount = new BigDecimal(0); - //未发放提成 - BigDecimal totalNotSentCommissionAmount = new BigDecimal(0); //未发放提成记录 List> sendDetailList = new ArrayList<>(); if(orderDetailList != null){ @@ -116,6 +140,7 @@ public class SysCommissionDayServiceImpl implements ISysCommissionDayService { } sysCommissionDayDetail.setTotalCommissionAmount(totalCommissionAmount); sysCommissionDayDetail.setTotalHasSentCommissionAmount(totalHasSentCommissionAmount); + //未发放提成 = 总提成 - 已发放提成 sysCommissionDayDetail.setTotalNotSentCommissionAmount(totalCommissionAmount.subtract(totalHasSentCommissionAmount)); sysCommissionDayDetail.setSendDetailList(sendDetailList); } diff --git a/stdiet-custom/src/main/resources/mapper/custom/SysCustomerMapper.xml b/stdiet-custom/src/main/resources/mapper/custom/SysCustomerMapper.xml index 089e13cd7..04ac3f68d 100644 --- a/stdiet-custom/src/main/resources/mapper/custom/SysCustomerMapper.xml +++ b/stdiet-custom/src/main/resources/mapper/custom/SysCustomerMapper.xml @@ -76,6 +76,7 @@ + @@ -196,7 +197,7 @@ scps.sex, scps.age, scps.tall, scps.weight, scps.physical_signs_id, scps.dishes_ingredient_id, scps.photo, scps.constipation, scps.stayLate, scps.motion, scps.make_food_type, scps.make_food_taste, scps.walk, scps.difficulty, scps.weakness, scps.rebound, scps.crux, scps.position, scps.sleep_time, scps.getup_time, scps.connect_time, scps.remarks, scps.blood_data, scps.moisture_date, scps.vocation, - scps.night, scps.experience + scps.night, scps.experience, scps.comments select count(*) from sys_wx_user_log where to_days(log_time) = to_days(now()) and openid = #{openid} diff --git a/stdiet-ui/src/api/custom/commision.js b/stdiet-ui/src/api/custom/commision.js index cdf65ecf5..967382272 100644 --- a/stdiet-ui/src/api/custom/commision.js +++ b/stdiet-ui/src/api/custom/commision.js @@ -77,3 +77,13 @@ export function detailDayCommision(query) { params: query }) } + +// 导出按天计算提成明细 +export function exportDayCommision(query) { + return request({ + url: '/custom/commision/exportDetailDay', + method: 'get', + params: query + }) +} + diff --git a/stdiet-ui/src/views/custom/commision/detail_day/index.vue b/stdiet-ui/src/views/custom/commision/detail_day/index.vue index e97c3ebf7..13dfb16fb 100644 --- a/stdiet-ui/src/views/custom/commision/detail_day/index.vue +++ b/stdiet-ui/src/views/custom/commision/detail_day/index.vue @@ -36,21 +36,21 @@ - + + @selection-change="handleSelectionChange" stripe :row-class-name="tableRowClassName"> + +