@@ -2,7 +2,11 @@ package com.stdiet.web.controller;
 | 
			
		||||
 | 
			
		||||
import com.stdiet.common.config.AliyunOSSConfig;
 | 
			
		||||
import com.stdiet.common.utils.oss.AliyunOSSUtils;
 | 
			
		||||
import com.stdiet.custom.domain.SysWxUserInfo;
 | 
			
		||||
import com.stdiet.custom.domain.SysWxUserLog;
 | 
			
		||||
import com.stdiet.custom.mapper.SysCustomerPhysicalSignsMapper;
 | 
			
		||||
import com.stdiet.custom.mapper.SysWxUserInfoMapper;
 | 
			
		||||
import com.stdiet.custom.mapper.SysWxUserLogMapper;
 | 
			
		||||
import org.springframework.beans.factory.annotation.Autowired;
 | 
			
		||||
import org.springframework.boot.ApplicationArguments;
 | 
			
		||||
import org.springframework.boot.ApplicationRunner;
 | 
			
		||||
@@ -10,18 +14,36 @@ import org.springframework.core.annotation.Order;
 | 
			
		||||
import org.springframework.stereotype.Component;
 | 
			
		||||
 | 
			
		||||
import java.io.File;
 | 
			
		||||
import java.util.List;
 | 
			
		||||
 | 
			
		||||
@Component
 | 
			
		||||
@Order(value = 1)
 | 
			
		||||
public class MyApplicationRunner implements ApplicationRunner {
 | 
			
		||||
 | 
			
		||||
    @Autowired
 | 
			
		||||
    private SysCustomerPhysicalSignsMapper sysCustomerPhysicalSignsMapper;
 | 
			
		||||
    private SysWxUserLogMapper sysWxUserLogMapper;
 | 
			
		||||
 | 
			
		||||
    @Autowired
 | 
			
		||||
    private SysWxUserInfoMapper sysWxUserInfoMapper;
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public void run(ApplicationArguments args) throws Exception {
 | 
			
		||||
        System.out.println("项目启动调用方法");
 | 
			
		||||
//        String path = AliyunOSSUtils.uploadFileInputSteam(AliyunOSSConfig.casePrefix,"ceshi.png",new File("D:\\ceshi.png"));
 | 
			
		||||
//        System.out.println(path);
 | 
			
		||||
        /*System.out.println("项目启动调用方法");
 | 
			
		||||
        List<String> phoneList = sysWxUserLogMapper.getAllSysWxUserLogPhone();
 | 
			
		||||
        SysWxUserLog sysWxUserLog = new SysWxUserLog();
 | 
			
		||||
        if(phoneList.size() > 0){
 | 
			
		||||
            for (String phone : phoneList) {
 | 
			
		||||
                System.out.println(phone);
 | 
			
		||||
                SysWxUserInfo sysWxUserInfo = new SysWxUserInfo();
 | 
			
		||||
                sysWxUserInfo.setPhone(phone);
 | 
			
		||||
                List<SysWxUserInfo> list = sysWxUserInfoMapper.selectSysWxUserInfoList(sysWxUserInfo);
 | 
			
		||||
                if(list != null && list.size() > 0){
 | 
			
		||||
                    sysWxUserLog.setOpenid(list.get(0).getOpenid());
 | 
			
		||||
                    sysWxUserLog.setPhone(phone);
 | 
			
		||||
                    sysWxUserLogMapper.updateSysWxUserLog(sysWxUserLog);
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
        }*/
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -14,6 +14,7 @@ import com.stdiet.custom.page.WxLogInfo;
 | 
			
		||||
import com.stdiet.custom.service.ISysOrderService;
 | 
			
		||||
import com.stdiet.custom.service.ISysWxUserInfoService;
 | 
			
		||||
import com.stdiet.custom.service.ISysWxUserLogService;
 | 
			
		||||
import org.aspectj.weaver.loadtime.Aj;
 | 
			
		||||
import org.springframework.beans.factory.annotation.Autowired;
 | 
			
		||||
import org.springframework.security.access.prepost.PreAuthorize;
 | 
			
		||||
import org.springframework.web.bind.annotation.*;
 | 
			
		||||
@@ -47,14 +48,8 @@ public class SysWxUserLogController extends BaseController {
 | 
			
		||||
        List<SysWxUserLog> 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(StringUtils.hiddenPhoneNumber(userLog.getPhone()));
 | 
			
		||||
                //userLog.setPhone(userLog.getPhone().replaceAll("(\\d{3})\\d{4}(\\d{4})", "$1****$2"));
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
@@ -69,6 +64,11 @@ public class SysWxUserLogController extends BaseController {
 | 
			
		||||
    @GetMapping("/export")
 | 
			
		||||
    public AjaxResult export(SysWxUserLog sysWxUserLog) {
 | 
			
		||||
        List<SysWxUserLog> list = sysWxUserLogService.selectSysWxUserLogList(sysWxUserLog);
 | 
			
		||||
        for (SysWxUserLog userLog : list) {
 | 
			
		||||
            if (StringUtils.isNotEmpty(userLog.getPhone())) {
 | 
			
		||||
                userLog.setPhone(StringUtils.hiddenPhoneNumber(userLog.getPhone()));
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        ExcelUtil<SysWxUserLog> util = new ExcelUtil<SysWxUserLog>(SysWxUserLog.class);
 | 
			
		||||
        return util.exportExcel(list, "wxUserLog");
 | 
			
		||||
    }
 | 
			
		||||
@@ -77,9 +77,11 @@ public class SysWxUserLogController extends BaseController {
 | 
			
		||||
     * 获取微信用户记录详细信息
 | 
			
		||||
     */
 | 
			
		||||
    @PreAuthorize("@ss.hasPermi('custom:wxUserLog:query')")
 | 
			
		||||
    @GetMapping(value = "/{openid}")
 | 
			
		||||
    public AjaxResult getInfo(@PathVariable("openid") String openid) {
 | 
			
		||||
        return AjaxResult.success(sysWxUserLogService.selectSysWxUserLogById(openid));
 | 
			
		||||
    @GetMapping(value = "/{id}")
 | 
			
		||||
    public AjaxResult getInfo(@PathVariable("id") String id) {
 | 
			
		||||
        SysWxUserLog sysWxUserLog = sysWxUserLogService.selectSysWxUserLogById(id);
 | 
			
		||||
        System.out.println(sysWxUserLog.getPhone());
 | 
			
		||||
        return AjaxResult.success(sysWxUserLog);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
@@ -89,7 +91,9 @@ public class SysWxUserLogController extends BaseController {
 | 
			
		||||
    @Log(title = "微信用户记录", businessType = BusinessType.INSERT)
 | 
			
		||||
    @PostMapping
 | 
			
		||||
    public AjaxResult add(@RequestBody SysWxUserLog sysWxUserLog) {
 | 
			
		||||
        return toAjax(sysWxUserLogService.insertSysWxUserLog(sysWxUserLog));
 | 
			
		||||
        //暂时不开放后台增加打卡,因为无法获取到openid
 | 
			
		||||
        //return toAjax(sysWxUserLogService.insertSysWxUserLog(sysWxUserLog));
 | 
			
		||||
        return AjaxResult.error("新增打卡功能暂时关闭");
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
@@ -99,7 +103,15 @@ public class SysWxUserLogController extends BaseController {
 | 
			
		||||
    @Log(title = "微信用户记录", businessType = BusinessType.UPDATE)
 | 
			
		||||
    @PutMapping
 | 
			
		||||
    public AjaxResult edit(@RequestBody SysWxUserLog sysWxUserLog) {
 | 
			
		||||
        return toAjax(sysWxUserLogService.updateSysWxUserLog(sysWxUserLog));
 | 
			
		||||
        if( sysWxUserLog != null && StringUtils.isNotEmpty(sysWxUserLog.getOpenid())){
 | 
			
		||||
            SysWxUserLog dateLog = sysWxUserLogService.selectSysWxUserLogByDateAndOpenId(sysWxUserLog);
 | 
			
		||||
            if(dateLog != null && dateLog.getId().intValue() != sysWxUserLog.getId().intValue()){
 | 
			
		||||
                return AjaxResult.error("今日该用户已打卡,无法重复打卡");
 | 
			
		||||
            }
 | 
			
		||||
            return toAjax(sysWxUserLogService.updateSysWxUserLog(sysWxUserLog));
 | 
			
		||||
        }else{
 | 
			
		||||
            return AjaxResult.error("修改失败");
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
@@ -107,9 +119,9 @@ public class SysWxUserLogController extends BaseController {
 | 
			
		||||
     */
 | 
			
		||||
    @PreAuthorize("@ss.hasPermi('custom:wxUserLog:remove')")
 | 
			
		||||
    @Log(title = "微信用户记录", businessType = BusinessType.DELETE)
 | 
			
		||||
    @DeleteMapping("/{openids}")
 | 
			
		||||
    public AjaxResult remove(@PathVariable String[] openids) {
 | 
			
		||||
        return toAjax(sysWxUserLogService.deleteSysWxUserLogByIds(openids));
 | 
			
		||||
    @DeleteMapping("/{ids}")
 | 
			
		||||
    public AjaxResult remove(@PathVariable String[] ids) {
 | 
			
		||||
        return toAjax(sysWxUserLogService.deleteSysWxUserLogByIds(ids));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @GetMapping(value = "/wx/logs/list")
 | 
			
		||||
 
 | 
			
		||||
@@ -0,0 +1,181 @@
 | 
			
		||||
package com.stdiet.web.controller.custom;
 | 
			
		||||
 | 
			
		||||
import com.itextpdf.io.util.DateTimeUtil;
 | 
			
		||||
import com.stdiet.common.core.controller.BaseController;
 | 
			
		||||
import com.stdiet.common.core.domain.AjaxResult;
 | 
			
		||||
import com.stdiet.common.core.page.TableDataInfo;
 | 
			
		||||
import com.stdiet.common.utils.DateUtils;
 | 
			
		||||
import com.stdiet.common.utils.StringUtils;
 | 
			
		||||
import com.stdiet.common.utils.oss.AliyunOSSUtils;
 | 
			
		||||
import com.stdiet.common.utils.sign.AesUtils;
 | 
			
		||||
import com.stdiet.custom.domain.*;
 | 
			
		||||
import com.stdiet.custom.dto.response.CustomerCaseResponse;
 | 
			
		||||
import com.stdiet.custom.page.WxLogInfo;
 | 
			
		||||
import com.stdiet.custom.service.ISysCustomerCaseService;
 | 
			
		||||
import com.stdiet.custom.service.ISysOrderService;
 | 
			
		||||
import com.stdiet.custom.service.ISysWxUserInfoService;
 | 
			
		||||
import com.stdiet.custom.service.ISysWxUserLogService;
 | 
			
		||||
import org.springframework.beans.factory.annotation.Autowired;
 | 
			
		||||
import org.springframework.web.bind.annotation.*;
 | 
			
		||||
 | 
			
		||||
import java.time.LocalDate;
 | 
			
		||||
import java.time.temporal.ChronoUnit;
 | 
			
		||||
import java.util.*;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * 微信小程序统一Controller
 | 
			
		||||
 */
 | 
			
		||||
@RestController
 | 
			
		||||
@RequestMapping("/wx/applet")
 | 
			
		||||
public class WechatAppletController extends BaseController {
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    @Autowired
 | 
			
		||||
    private ISysCustomerCaseService sysCustomerCaseService;
 | 
			
		||||
 | 
			
		||||
    @Autowired
 | 
			
		||||
    private ISysWxUserLogService sysWxUserLogService;
 | 
			
		||||
 | 
			
		||||
    @Autowired
 | 
			
		||||
    private ISysWxUserInfoService sysWxUserInfoService;
 | 
			
		||||
 | 
			
		||||
    @Autowired
 | 
			
		||||
    private ISysOrderService sysOrderService;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 查询微信小程序中展示的客户案例
 | 
			
		||||
     */
 | 
			
		||||
    @GetMapping("/caseList")
 | 
			
		||||
    public TableDataInfo caseList(SysCustomerCase sysCustomerCase)
 | 
			
		||||
    {
 | 
			
		||||
        startPage();
 | 
			
		||||
        sysCustomerCase.setKeywordArray(StringUtils.isNotEmpty(sysCustomerCase.getKeyword()) ? sysCustomerCase.getKeyword().split(",") : null);
 | 
			
		||||
        List<CustomerCaseResponse> list = sysCustomerCaseService.getWxCustomerCaseList(sysCustomerCase);
 | 
			
		||||
        //处理ID加密
 | 
			
		||||
        dealIdEnc(list);
 | 
			
		||||
        return getDataTable(list);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 查询客户案例文件列表
 | 
			
		||||
     */
 | 
			
		||||
    @GetMapping("/getFileByCaseId")
 | 
			
		||||
    public AjaxResult getFileByCaseId(@RequestParam("caseId")String caseId)
 | 
			
		||||
    {
 | 
			
		||||
        Long id = StringUtils.isNotEmpty(caseId) ? Long.parseLong(AesUtils.decrypt(caseId, null)) : null;
 | 
			
		||||
        CustomerCaseResponse customerCaseResponse = new CustomerCaseResponse();
 | 
			
		||||
        customerCaseResponse.setId(caseId);
 | 
			
		||||
        if(id != null){
 | 
			
		||||
            List<SysCustomerCaseFile> list = sysCustomerCaseService.getFileListByCaseId(id);
 | 
			
		||||
            List<String> fileUrl = new ArrayList<>();
 | 
			
		||||
            for (SysCustomerCaseFile caseFile : list) {
 | 
			
		||||
                fileUrl.add(caseFile.getFileUrl());
 | 
			
		||||
            }
 | 
			
		||||
            List<String> downUrlList = AliyunOSSUtils.generatePresignedUrl(fileUrl);
 | 
			
		||||
            customerCaseResponse.setFileList(downUrlList);
 | 
			
		||||
        }else{
 | 
			
		||||
            customerCaseResponse.setFileList(new ArrayList<>());
 | 
			
		||||
        }
 | 
			
		||||
        return AjaxResult.success(customerCaseResponse);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 同步客户信息,返回订单数量
 | 
			
		||||
     * @param sysWxUserInfo
 | 
			
		||||
     * @return
 | 
			
		||||
     */
 | 
			
		||||
    @PostMapping("/synchroCustomerInfo")
 | 
			
		||||
    public AjaxResult synchroCustomerInfo(@RequestBody SysWxUserInfo sysWxUserInfo) {
 | 
			
		||||
        if(StringUtils.isEmpty(sysWxUserInfo.getOpenid()) || StringUtils.isEmpty(sysWxUserInfo.getPhone())){
 | 
			
		||||
            return AjaxResult.error("手机号为空");
 | 
			
		||||
        }
 | 
			
		||||
        // 查询微信用户
 | 
			
		||||
        SysWxUserInfo userInfo = sysWxUserInfoService.selectSysWxUserInfoById(sysWxUserInfo.getOpenid());
 | 
			
		||||
        if(userInfo != null){
 | 
			
		||||
            //更新数据
 | 
			
		||||
            sysWxUserInfoService.updateSysWxUserInfo(sysWxUserInfo);
 | 
			
		||||
        }else{
 | 
			
		||||
            sysWxUserInfoService.insertSysWxUserInfo(sysWxUserInfo);
 | 
			
		||||
        }
 | 
			
		||||
        return AjaxResult.success();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 微信小程序获取客户打卡记录
 | 
			
		||||
     * @param sysWxUserLog
 | 
			
		||||
     * @return
 | 
			
		||||
     */
 | 
			
		||||
    @GetMapping(value = "/getPunchLogs")
 | 
			
		||||
    public AjaxResult getPunchLogs(SysWxUserLog sysWxUserLog) {
 | 
			
		||||
        if(StringUtils.isEmpty(sysWxUserLog.getPhone()) && StringUtils.isEmpty(sysWxUserLog.getOpenid())){
 | 
			
		||||
            return  AjaxResult.error(5001, "缺少参数");
 | 
			
		||||
        }
 | 
			
		||||
        //查询是否下单
 | 
			
		||||
        SysCustomer param = new SysCustomer();
 | 
			
		||||
        param.setPhone(sysWxUserLog.getPhone());
 | 
			
		||||
        int orderCount = sysOrderService.getOrderCountByCustomer(param);
 | 
			
		||||
        if(orderCount > 0){
 | 
			
		||||
            Map<String, Object> result = new HashMap<>();
 | 
			
		||||
            //今日是否已打卡
 | 
			
		||||
            boolean isPunch = false;
 | 
			
		||||
            startPage();
 | 
			
		||||
            List<WxLogInfo> list = sysWxUserLogService.getWxLogInfoList(sysWxUserLog);
 | 
			
		||||
            if(list.size() > 0){
 | 
			
		||||
                WxLogInfo lastLog = list.get(0);
 | 
			
		||||
                if(lastLog.getDate() != null && ChronoUnit.DAYS.between(DateUtils.stringToLocalDate(lastLog.getDate(), "yyyy-MM-dd"), LocalDate.now()) == 0) {
 | 
			
		||||
                    isPunch = true;
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
            Collections.reverse(list);
 | 
			
		||||
            TableDataInfo tableDataInfo = getDataTable(list);
 | 
			
		||||
            result.put("isPunch", isPunch);
 | 
			
		||||
            result.put("tableDataInfo", tableDataInfo);
 | 
			
		||||
            return AjaxResult.success(result);
 | 
			
		||||
        }else{
 | 
			
		||||
            return AjaxResult.error(5002, "未查询到相关订单信息");
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 今日是否打卡
 | 
			
		||||
     * @param openid
 | 
			
		||||
     * @return
 | 
			
		||||
     */
 | 
			
		||||
    @GetMapping(value = "/checkNowPunchLog/{openid}")
 | 
			
		||||
    public AjaxResult checkNowPunchLog(@PathVariable String openid) {
 | 
			
		||||
        int count = StringUtils.isEmpty(openid) ? 0 : sysWxUserLogService.checkWxLogInfoCount(openid);
 | 
			
		||||
        return AjaxResult.success(count);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 微信小程序打卡
 | 
			
		||||
     * @param sysWxUserLog
 | 
			
		||||
     * @return
 | 
			
		||||
     */
 | 
			
		||||
    @PostMapping(value = "/addPunchLog")
 | 
			
		||||
    public AjaxResult addPunchLog(@RequestBody SysWxUserLog sysWxUserLog) {
 | 
			
		||||
        // 查询微信用户
 | 
			
		||||
        SysWxUserInfo userInfo = StringUtils.isEmpty(sysWxUserLog.getOpenid()) ? null : sysWxUserInfoService.selectSysWxUserInfoById(sysWxUserLog.getOpenid());
 | 
			
		||||
        if (userInfo == null || StringUtils.isEmpty(userInfo.getPhone())) {
 | 
			
		||||
            return AjaxResult.error("不存在客户");
 | 
			
		||||
        }
 | 
			
		||||
        //查询今日是否已打卡
 | 
			
		||||
        int count = sysWxUserLogService.checkWxLogInfoCount(sysWxUserLog.getOpenid());
 | 
			
		||||
        if(count > 0){
 | 
			
		||||
            return AjaxResult.error("今日已打卡,不可重复打卡");
 | 
			
		||||
        }
 | 
			
		||||
        sysWxUserLog.setLogTime(DateTimeUtil.getCurrentTimeDate());
 | 
			
		||||
        return toAjax(sysWxUserLogService.insertSysWxUserLog(sysWxUserLog));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 处理返回值的ID加密
 | 
			
		||||
     * @param list
 | 
			
		||||
     * @return
 | 
			
		||||
     */
 | 
			
		||||
    private void dealIdEnc(List<CustomerCaseResponse> list){
 | 
			
		||||
        for (CustomerCaseResponse cus : list) {
 | 
			
		||||
            cus.setId(AesUtils.encrypt(cus.getId()+"", null));
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@@ -3,6 +3,7 @@ package com.stdiet.custom.domain;
 | 
			
		||||
import java.math.BigDecimal;
 | 
			
		||||
import java.util.Date;
 | 
			
		||||
import com.fasterxml.jackson.annotation.JsonFormat;
 | 
			
		||||
import lombok.Data;
 | 
			
		||||
import org.apache.commons.lang3.builder.ToStringBuilder;
 | 
			
		||||
import org.apache.commons.lang3.builder.ToStringStyle;
 | 
			
		||||
import com.stdiet.common.annotation.Excel;
 | 
			
		||||
@@ -14,10 +15,13 @@ import com.stdiet.common.core.domain.BaseEntity;
 | 
			
		||||
 * @author wonder
 | 
			
		||||
 * @date 2020-11-29
 | 
			
		||||
 */
 | 
			
		||||
@Data
 | 
			
		||||
public class SysWxUserLog extends BaseEntity
 | 
			
		||||
{
 | 
			
		||||
    private static final long serialVersionUID = 1L;
 | 
			
		||||
 | 
			
		||||
    private Long id;
 | 
			
		||||
 | 
			
		||||
    /** 微信openid */
 | 
			
		||||
    private String openid;
 | 
			
		||||
 | 
			
		||||
@@ -68,183 +72,18 @@ public class SysWxUserLog extends BaseEntity
 | 
			
		||||
    @JsonFormat(pattern = "yyyy-MM-dd")
 | 
			
		||||
    private Date logTime;
 | 
			
		||||
 | 
			
		||||
    /** 非持久字段,客户姓名 + 营养师姓名,使用 , 隔开,用于接收sql查询返回字段 */
 | 
			
		||||
    private String customerMessage;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 非持久化字段,营养师
 | 
			
		||||
     * 非持久化字段,客户姓名
 | 
			
		||||
     */
 | 
			
		||||
    @Excel(name = "姓名")
 | 
			
		||||
    private String customer;
 | 
			
		||||
    private String customerName;
 | 
			
		||||
 | 
			
		||||
    //营养师ID
 | 
			
		||||
    private Long nutritionistId;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 非持久化字段,营养师
 | 
			
		||||
     */
 | 
			
		||||
    @Excel(name = "营养师")
 | 
			
		||||
    private String nutritionist;
 | 
			
		||||
 | 
			
		||||
    public void setLogTime(Date logTime) {
 | 
			
		||||
        this.logTime = logTime;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public Date getLogTime() {
 | 
			
		||||
        return logTime;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void setOpenid(String openid)
 | 
			
		||||
    {
 | 
			
		||||
        this.openid = openid;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public String getOpenid()
 | 
			
		||||
    {
 | 
			
		||||
        return openid;
 | 
			
		||||
    }
 | 
			
		||||
    public void setWeight(BigDecimal weight)
 | 
			
		||||
    {
 | 
			
		||||
        this.weight = weight;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public BigDecimal getWeight()
 | 
			
		||||
    {
 | 
			
		||||
        return weight;
 | 
			
		||||
    }
 | 
			
		||||
    public void setAppid(String appid)
 | 
			
		||||
    {
 | 
			
		||||
        this.appid = appid;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public String getAppid()
 | 
			
		||||
    {
 | 
			
		||||
        return appid;
 | 
			
		||||
    }
 | 
			
		||||
    public void setPhone(String phone)
 | 
			
		||||
    {
 | 
			
		||||
        this.phone = phone;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public String getPhone()
 | 
			
		||||
    {
 | 
			
		||||
        return phone;
 | 
			
		||||
    }
 | 
			
		||||
    public void setSleepTime(String sleepTime)
 | 
			
		||||
    {
 | 
			
		||||
        this.sleepTime = sleepTime;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public String getSleepTime()
 | 
			
		||||
    {
 | 
			
		||||
        return sleepTime;
 | 
			
		||||
    }
 | 
			
		||||
    public void setWakeupTime(String wakeupTime)
 | 
			
		||||
    {
 | 
			
		||||
        this.wakeupTime = wakeupTime;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public String getWakeupTime()
 | 
			
		||||
    {
 | 
			
		||||
        return wakeupTime;
 | 
			
		||||
    }
 | 
			
		||||
    public void setSport(String sport)
 | 
			
		||||
    {
 | 
			
		||||
        this.sport = sport;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public String getSport()
 | 
			
		||||
    {
 | 
			
		||||
        return sport;
 | 
			
		||||
    }
 | 
			
		||||
    public void setAvatarUrl(String avatarUrl)
 | 
			
		||||
    {
 | 
			
		||||
        this.avatarUrl = avatarUrl;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public String getAvatarUrl()
 | 
			
		||||
    {
 | 
			
		||||
        return avatarUrl;
 | 
			
		||||
    }
 | 
			
		||||
    public void setDiet(String diet)
 | 
			
		||||
    {
 | 
			
		||||
        this.diet = diet;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public String getDiet()
 | 
			
		||||
    {
 | 
			
		||||
        return diet;
 | 
			
		||||
    }
 | 
			
		||||
    public void setInsomnia(String insomnia)
 | 
			
		||||
    {
 | 
			
		||||
        this.insomnia = insomnia;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public String getInsomnia()
 | 
			
		||||
    {
 | 
			
		||||
        return insomnia;
 | 
			
		||||
    }
 | 
			
		||||
    public void setDefecation(String defecation)
 | 
			
		||||
    {
 | 
			
		||||
        this.defecation = defecation;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public String getDefecation()
 | 
			
		||||
    {
 | 
			
		||||
        return defecation;
 | 
			
		||||
    }
 | 
			
		||||
    public void setWater(Long water)
 | 
			
		||||
    {
 | 
			
		||||
        this.water = water;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public Long getWater()
 | 
			
		||||
    {
 | 
			
		||||
        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)
 | 
			
		||||
                .append("openid", getOpenid())
 | 
			
		||||
                .append("weight", getWeight())
 | 
			
		||||
                .append("appid", getAppid())
 | 
			
		||||
                .append("phone", getPhone())
 | 
			
		||||
                .append("sleepTime", getSleepTime())
 | 
			
		||||
                .append("wakeupTime", getWakeupTime())
 | 
			
		||||
                .append("sport", getSport())
 | 
			
		||||
                .append("avatarUrl", getAvatarUrl())
 | 
			
		||||
                .append("diet", getDiet())
 | 
			
		||||
                .append("insomnia", getInsomnia())
 | 
			
		||||
                .append("defecation", getDefecation())
 | 
			
		||||
                .append("water", getWater())
 | 
			
		||||
                .append("createBy", getCreateBy())
 | 
			
		||||
                .append("createTime", getCreateTime())
 | 
			
		||||
                .append("updateBy", getUpdateBy())
 | 
			
		||||
                .append("updateTime", getUpdateTime())
 | 
			
		||||
                .append("remark", getRemark())
 | 
			
		||||
                .append("logTime", getLogTime())
 | 
			
		||||
                .toString();
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@@ -5,6 +5,7 @@ import java.util.List;
 | 
			
		||||
 | 
			
		||||
import com.stdiet.custom.domain.SysCommision;
 | 
			
		||||
import com.stdiet.custom.domain.SysCommissionDayDetail;
 | 
			
		||||
import com.stdiet.custom.domain.SysCustomer;
 | 
			
		||||
import com.stdiet.custom.domain.SysOrder;
 | 
			
		||||
import com.stdiet.custom.dto.request.SysOrderCommision;
 | 
			
		||||
import org.apache.ibatis.annotations.Param;
 | 
			
		||||
@@ -77,4 +78,11 @@ public interface SysOrderMapper
 | 
			
		||||
     * @return
 | 
			
		||||
     */
 | 
			
		||||
    List<SysOrder> selectSimpleOrderMessage(SysCommision sysCommision);
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 查询客户订单数量
 | 
			
		||||
     * @param sysCustomer
 | 
			
		||||
     * @return
 | 
			
		||||
     */
 | 
			
		||||
    int getOrderCountByCustomer(SysCustomer sysCustomer);
 | 
			
		||||
}
 | 
			
		||||
@@ -41,7 +41,7 @@ public interface SysWxUserLogMapper
 | 
			
		||||
    public int insertSysWxUserLog(SysWxUserLog sysWxUserLog);
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 修改微信用户记录
 | 
			
		||||
     * 修改微信用户打卡记录
 | 
			
		||||
     *
 | 
			
		||||
     * @param sysWxUserLog 微信用户记录
 | 
			
		||||
     * @return 结果
 | 
			
		||||
@@ -49,21 +49,33 @@ public interface SysWxUserLogMapper
 | 
			
		||||
    public int updateSysWxUserLog(SysWxUserLog sysWxUserLog);
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 删除微信用户记录
 | 
			
		||||
     *
 | 
			
		||||
     * @param openid 微信用户记录ID
 | 
			
		||||
     * @return 结果
 | 
			
		||||
     * 根据ID删除打卡记录
 | 
			
		||||
     * @param id
 | 
			
		||||
     * @return
 | 
			
		||||
     */
 | 
			
		||||
    public int deleteSysWxUserLogById(String openid);
 | 
			
		||||
    public int deleteSysWxUserLogById(Long id);
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 批量删除微信用户记录
 | 
			
		||||
     * 批量删除微信用户打卡记录
 | 
			
		||||
     *
 | 
			
		||||
     * @param openids 需要删除的数据ID
 | 
			
		||||
     * @param ids 需要删除的数据ID
 | 
			
		||||
     * @return 结果
 | 
			
		||||
     */
 | 
			
		||||
    public int deleteSysWxUserLogByIds(String[] openids);
 | 
			
		||||
    public int deleteSysWxUserLogByIds(String[] ids);
 | 
			
		||||
 | 
			
		||||
    public int checkWxLogInfoCount(String openid);
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 根据openid和手机号查询打卡记录
 | 
			
		||||
     * @return
 | 
			
		||||
     */
 | 
			
		||||
    public List<WxLogInfo> getWxLogInfoList(SysWxUserLog sysWxUserLog);
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 根据日期和openid查询打卡记录
 | 
			
		||||
     * @param sysWxUserLog
 | 
			
		||||
     * @return
 | 
			
		||||
     */
 | 
			
		||||
    SysWxUserLog selectSysWxUserLogByDateAndOpenId(SysWxUserLog sysWxUserLog);
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
@@ -3,6 +3,8 @@ package com.stdiet.custom.service;
 | 
			
		||||
import java.math.BigDecimal;
 | 
			
		||||
import java.util.Date;
 | 
			
		||||
import java.util.List;
 | 
			
		||||
 | 
			
		||||
import com.stdiet.custom.domain.SysCustomer;
 | 
			
		||||
import com.stdiet.custom.domain.SysOrder;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
@@ -75,4 +77,11 @@ public interface ISysOrderService
 | 
			
		||||
     * @return
 | 
			
		||||
     */
 | 
			
		||||
    int updateOrderServerEndDate(Long orderId, boolean updatePlan);
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 查询客户订单数量
 | 
			
		||||
     * @param sysCustomer
 | 
			
		||||
     * @return
 | 
			
		||||
     */
 | 
			
		||||
    int getOrderCountByCustomer(SysCustomer sysCustomer);
 | 
			
		||||
}
 | 
			
		||||
@@ -17,10 +17,10 @@ public interface ISysWxUserLogService
 | 
			
		||||
    /**
 | 
			
		||||
     * 查询微信用户记录
 | 
			
		||||
     *
 | 
			
		||||
     * @param openid 微信用户记录ID
 | 
			
		||||
     * @param id 微信用户记录ID
 | 
			
		||||
     * @return 微信用户记录
 | 
			
		||||
     */
 | 
			
		||||
    public SysWxUserLog selectSysWxUserLogById(String openid);
 | 
			
		||||
    public SysWxUserLog selectSysWxUserLogById(String id);
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 查询微信用户记录列表
 | 
			
		||||
@@ -51,18 +51,32 @@ public interface ISysWxUserLogService
 | 
			
		||||
    /**
 | 
			
		||||
     * 批量删除微信用户记录
 | 
			
		||||
     *
 | 
			
		||||
     * @param openids 需要删除的微信用户记录ID
 | 
			
		||||
     * @param ids 需要删除的微信用户记录ID
 | 
			
		||||
     * @return 结果
 | 
			
		||||
     */
 | 
			
		||||
    public int deleteSysWxUserLogByIds(String[] openids);
 | 
			
		||||
    public int deleteSysWxUserLogByIds(String[] ids);
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 删除微信用户记录信息
 | 
			
		||||
     *
 | 
			
		||||
     * @param openid 微信用户记录ID
 | 
			
		||||
     * @param id 微信用户记录ID
 | 
			
		||||
     * @return 结果
 | 
			
		||||
     */
 | 
			
		||||
    public int deleteSysWxUserLogById(String openid);
 | 
			
		||||
    public int deleteSysWxUserLogById(Long id);
 | 
			
		||||
 | 
			
		||||
    public int checkWxLogInfoCount(String openid);
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 根据openid和手机号查询打卡记录
 | 
			
		||||
     * @return
 | 
			
		||||
     */
 | 
			
		||||
    public List<WxLogInfo> getWxLogInfoList(SysWxUserLog sysWxUserLog);
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 根据日期和openid查询打卡记录
 | 
			
		||||
     * @param sysWxUserLog
 | 
			
		||||
     * @return
 | 
			
		||||
     */
 | 
			
		||||
    SysWxUserLog selectSysWxUserLogByDateAndOpenId(SysWxUserLog sysWxUserLog);
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
@@ -4,6 +4,7 @@ import com.stdiet.common.annotation.Excel;
 | 
			
		||||
import com.stdiet.common.utils.DateUtils;
 | 
			
		||||
import com.stdiet.common.utils.SecurityUtils;
 | 
			
		||||
import com.stdiet.common.utils.StringUtils;
 | 
			
		||||
import com.stdiet.custom.domain.SysCustomer;
 | 
			
		||||
import com.stdiet.custom.domain.SysOrder;
 | 
			
		||||
import com.stdiet.custom.mapper.SysOrderMapper;
 | 
			
		||||
import com.stdiet.custom.service.ISysCommissionDayService;
 | 
			
		||||
@@ -326,4 +327,13 @@ public class SysOrderServiceImpl implements ISysOrderService {
 | 
			
		||||
        //删除食谱计划
 | 
			
		||||
        sysRecipesPlanService.delRecipesPlanByOrderId(orderIds);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 查询客户订单数量
 | 
			
		||||
     * @param sysCustomer
 | 
			
		||||
     * @return
 | 
			
		||||
     */
 | 
			
		||||
    public int getOrderCountByCustomer(SysCustomer sysCustomer){
 | 
			
		||||
        return sysOrderMapper.getOrderCountByCustomer(sysCustomer);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@@ -25,12 +25,12 @@ public class SysWxUserLogServiceImpl implements ISysWxUserLogService {
 | 
			
		||||
    /**
 | 
			
		||||
     * 查询微信用户记录
 | 
			
		||||
     *
 | 
			
		||||
     * @param openid 微信用户记录ID
 | 
			
		||||
     * @param id 微信用户记录ID
 | 
			
		||||
     * @return 微信用户记录
 | 
			
		||||
     */
 | 
			
		||||
    @Override
 | 
			
		||||
    public SysWxUserLog selectSysWxUserLogById(String openid) {
 | 
			
		||||
        return sysWxUserLogMapper.selectSysWxUserLogById(openid);
 | 
			
		||||
    public SysWxUserLog selectSysWxUserLogById(String id) {
 | 
			
		||||
        return sysWxUserLogMapper.selectSysWxUserLogById(id);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
@@ -76,23 +76,23 @@ public class SysWxUserLogServiceImpl implements ISysWxUserLogService {
 | 
			
		||||
    /**
 | 
			
		||||
     * 批量删除微信用户记录
 | 
			
		||||
     *
 | 
			
		||||
     * @param openids 需要删除的微信用户记录ID
 | 
			
		||||
     * @param ids 需要删除的微信用户记录ID
 | 
			
		||||
     * @return 结果
 | 
			
		||||
     */
 | 
			
		||||
    @Override
 | 
			
		||||
    public int deleteSysWxUserLogByIds(String[] openids) {
 | 
			
		||||
        return sysWxUserLogMapper.deleteSysWxUserLogByIds(openids);
 | 
			
		||||
    public int deleteSysWxUserLogByIds(String[] ids) {
 | 
			
		||||
        return sysWxUserLogMapper.deleteSysWxUserLogByIds(ids);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 删除微信用户记录信息
 | 
			
		||||
     *
 | 
			
		||||
     * @param openid 微信用户记录ID
 | 
			
		||||
     * @param id 微信用户记录ID
 | 
			
		||||
     * @return 结果
 | 
			
		||||
     */
 | 
			
		||||
    @Override
 | 
			
		||||
    public int deleteSysWxUserLogById(String openid) {
 | 
			
		||||
        return sysWxUserLogMapper.deleteSysWxUserLogById(openid);
 | 
			
		||||
    public int deleteSysWxUserLogById(Long id) {
 | 
			
		||||
        return sysWxUserLogMapper.deleteSysWxUserLogById(id);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
@@ -100,5 +100,22 @@ public class SysWxUserLogServiceImpl implements ISysWxUserLogService {
 | 
			
		||||
        return sysWxUserLogMapper.checkWxLogInfoCount(openid);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 根据openid和手机号查询打卡记录
 | 
			
		||||
     * @return
 | 
			
		||||
     */
 | 
			
		||||
    @Override
 | 
			
		||||
    public List<WxLogInfo> getWxLogInfoList(SysWxUserLog sysWxUserLog){
 | 
			
		||||
        return sysWxUserLogMapper.getWxLogInfoList(sysWxUserLog);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 根据日期和openid查询打卡记录
 | 
			
		||||
     * @param sysWxUserLog
 | 
			
		||||
     * @return
 | 
			
		||||
     */
 | 
			
		||||
    public SysWxUserLog selectSysWxUserLogByDateAndOpenId(SysWxUserLog sysWxUserLog){
 | 
			
		||||
        return sysWxUserLogMapper.selectSysWxUserLogByDateAndOpenId(sysWxUserLog);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
@@ -35,15 +35,15 @@
 | 
			
		||||
    <select id="selectSysCustomerList" parameterType="SysCustomer" resultMap="SysCustomerResult">
 | 
			
		||||
        <include refid="selectSysCustomerVo"/>
 | 
			
		||||
        where del_flag = 0
 | 
			
		||||
        <if test="name != null  and name != ''"> and name like concat('%', #{name}, '%') or phone like concat('%', #{name}, '%')</if>
 | 
			
		||||
        <if test="name != null  and name != ''"> and (name like concat('%', #{name}, '%') or phone like concat('%', #{name}, '%'))</if>
 | 
			
		||||
        <if test="mainDietitian != null  and mainDietitian != ''"> and main_dietitian = #{mainDietitian}</if>
 | 
			
		||||
        <if test="mainDietitian == 0"> and isnull(main_dietitian) or main_dietitian=0</if>
 | 
			
		||||
        <if test="mainDietitian == 0"> and (isnull(main_dietitian) or main_dietitian=0)</if>
 | 
			
		||||
        <if test="salesman != null  and salesman != ''"> and salesman = #{salesman}</if>
 | 
			
		||||
        <if test="salesman == 0"> and isnull(salesman) or salesman=0</if>
 | 
			
		||||
        <if test="salesman == 0"> and (isnull(salesman) or salesman=0)</if>
 | 
			
		||||
        <if test="afterDietitian != null  and afterDietitian != ''"> and after_dietitian = #{afterDietitian}</if>
 | 
			
		||||
        <if test="afterDietitian == 0"> and isnull(after_dietitian) or after_dietitian=0</if>
 | 
			
		||||
        <if test="afterDietitian == 0"> and (isnull(after_dietitian) or after_dietitian=0)</if>
 | 
			
		||||
        <if test="assistantDietitian != null  and assistantDietitian != ''"> and assistant_dietitian = #{assistantDietitian}</if>
 | 
			
		||||
        <if test="assistantDietitian == 0"> and isnull(assistant_dietitian) or assistant_dietitian=0</if>
 | 
			
		||||
        <if test="assistantDietitian == 0"> and (isnull(assistant_dietitian) or assistant_dietitian=0)</if>
 | 
			
		||||
        <if test="fansChannel != null "> and fans_channel = #{fansChannel}</if>
 | 
			
		||||
        order by create_time desc
 | 
			
		||||
    </select>
 | 
			
		||||
 
 | 
			
		||||
@@ -408,4 +408,16 @@
 | 
			
		||||
      order by o.order_time desc
 | 
			
		||||
    </select>
 | 
			
		||||
 | 
			
		||||
    <!-- 根据客户信息查询客户的订单列表数量 -->
 | 
			
		||||
    <select id="getOrderCountByCustomer" parameterType="SysCustomer" resultType="int">
 | 
			
		||||
        SELECT count(so.order_id) FROM sys_order so LEFT JOIN sys_customer sc ON sc.id = so.cus_id AND sc.del_flag = 0
 | 
			
		||||
        WHERE so.del_flag = 0
 | 
			
		||||
        <if test="phone != null and phone != ''">
 | 
			
		||||
            and sc.phone = #{phone}
 | 
			
		||||
        </if>
 | 
			
		||||
        <if test="id != null">
 | 
			
		||||
            and sc.id = #{id}
 | 
			
		||||
        </if>
 | 
			
		||||
    </select>
 | 
			
		||||
 | 
			
		||||
</mapper>
 | 
			
		||||
@@ -5,6 +5,7 @@
 | 
			
		||||
<mapper namespace="com.stdiet.custom.mapper.SysWxUserLogMapper">
 | 
			
		||||
 | 
			
		||||
    <resultMap type="SysWxUserLog" id="SysWxUserLogResult">
 | 
			
		||||
        <result property="id"    column="id"    />
 | 
			
		||||
        <result property="openid" column="openid"/>
 | 
			
		||||
        <result property="weight" column="weight"/>
 | 
			
		||||
        <result property="appid" column="appid"/>
 | 
			
		||||
@@ -25,7 +26,9 @@
 | 
			
		||||
        <result property="updateTime" column="update_time"/>
 | 
			
		||||
        <result property="remark" column="remark"/>
 | 
			
		||||
        <!-- 非持久字段 -->
 | 
			
		||||
        <result property="customerMessage" column="customer_message"></result>
 | 
			
		||||
        <result property="customerName" column="customer_name"></result>
 | 
			
		||||
        <!-- 营养师 -->
 | 
			
		||||
        <result property="nutritionist" column="nutritionist"></result>
 | 
			
		||||
    </resultMap>
 | 
			
		||||
 | 
			
		||||
    <resultMap type="com.stdiet.custom.page.WxLogInfo" id="WxLogInfo">
 | 
			
		||||
@@ -41,28 +44,30 @@
 | 
			
		||||
    </resultMap>
 | 
			
		||||
 | 
			
		||||
    <sql id="selectSysWxUserLogVo">
 | 
			
		||||
        select openid, weight, appid, phone, log_time, sleep_time, wakeup_time, sport, avatar_url, diet, insomnia, defecation, water, create_by, create_time, update_by, update_time, remark from sys_wx_user_log
 | 
			
		||||
    </sql>
 | 
			
		||||
 | 
			
		||||
    <sql id="selectBaseField">
 | 
			
		||||
        swul.openid, swul.weight, swul.appid, swul.phone, swul.log_time, swul.sleep_time, swul.wakeup_time, swul.sport, swul.avatar_url, swul.diet, swul.insomnia,
 | 
			
		||||
        swul.defecation, swul.water, swul.create_by, swul.create_time, swul.update_by, swul.update_time, swul.remark
 | 
			
		||||
        select id,openid, weight, appid, phone, log_time, sleep_time, wakeup_time, sport, avatar_url, diet, insomnia, defecation, water, create_by, create_time, update_by, update_time, remark from sys_wx_user_log
 | 
			
		||||
    </sql>
 | 
			
		||||
 | 
			
		||||
    <select id="checkWxLogInfoCount" parameterType="String" resultType="Integer">
 | 
			
		||||
        select count(*) from sys_wx_user_log where to_days(log_time) = to_days(now()) and openid = #{openid}
 | 
			
		||||
    </select>
 | 
			
		||||
 | 
			
		||||
    <!-- 后台查询 -->
 | 
			
		||||
    <select id="selectSysWxUserLogList" parameterType="SysWxUserLog" resultMap="SysWxUserLogResult">
 | 
			
		||||
        select <include refid="selectBaseField"></include>,
 | 
			
		||||
        (select CONCAT(IFNULL(so.customer,''),',',IFNULL(su.nick_name,'')) from (select * from sys_order s where s.phone = swul.phone order by order_id desc limit 1) as so
 | 
			
		||||
        left join sys_user su on su.user_id = so.nutritionist_id and su.del_flag = 0) as customer_message
 | 
			
		||||
        from sys_wx_user_log swul
 | 
			
		||||
        <where>
 | 
			
		||||
            <if test="openid != null  and openid != ''">and swul.openid = #{openid}</if>
 | 
			
		||||
            <if test="phone != null  and phone != ''">or swul.phone = #{phone}</if>
 | 
			
		||||
        </where>
 | 
			
		||||
        order by create_time desc
 | 
			
		||||
        SELECT wxlog.id,wxinfo.appid,wxinfo.openid,wxinfo.avatar_url,wxinfo.phone,wxlog.weight,wxlog.log_time,wxlog.sleep_time, wxlog.wakeup_time,wxlog.defecation, wxlog.water, wxlog.insomnia,wxlog.sport,wxlog.diet,wxlog.remark,
 | 
			
		||||
        sc.name as customer_name, su.nick_name as nutritionist
 | 
			
		||||
        FROM sys_wx_user_log wxlog
 | 
			
		||||
        left join sys_wx_user_info wxinfo on wxinfo.openid  = wxlog.openid
 | 
			
		||||
        left join sys_customer sc on sc.phone = wxinfo.phone and sc.del_flag = 0
 | 
			
		||||
        left join sys_user su on su.user_id = sc.main_dietitian and su.del_flag = '0'
 | 
			
		||||
        where wxinfo.phone is not null
 | 
			
		||||
        <if test="phone != null and phone != ''">and (sc.name like concat('%',#{phone},'%') or wxinfo.phone like  concat('%',#{phone},'%') )</if>
 | 
			
		||||
        <if test="appid != null">
 | 
			
		||||
            and wxinfo.appid = #{appid}
 | 
			
		||||
        </if>
 | 
			
		||||
        <if test="nutritionistId != null">
 | 
			
		||||
            and su.user_id = #{nutritionistId}
 | 
			
		||||
        </if>
 | 
			
		||||
        order by wxlog.create_time desc
 | 
			
		||||
    </select>
 | 
			
		||||
 | 
			
		||||
    <select id="selectWxLogInfoList" parameterType="SysWxUserLog" resultMap="WxLogInfo">
 | 
			
		||||
@@ -83,7 +88,7 @@
 | 
			
		||||
 | 
			
		||||
    <select id="selectSysWxUserLogById" parameterType="String" resultMap="SysWxUserLogResult">
 | 
			
		||||
        <include refid="selectSysWxUserLogVo"/>
 | 
			
		||||
        where openid = #{openid}
 | 
			
		||||
        where id = #{id}
 | 
			
		||||
    </select>
 | 
			
		||||
 | 
			
		||||
    <insert id="insertSysWxUserLog" parameterType="SysWxUserLog">
 | 
			
		||||
@@ -133,6 +138,7 @@
 | 
			
		||||
    <update id="updateSysWxUserLog" parameterType="SysWxUserLog">
 | 
			
		||||
        update sys_wx_user_log
 | 
			
		||||
        <trim prefix="SET" suffixOverrides=",">
 | 
			
		||||
            <if test="openid != null">openid = #{openid},</if>
 | 
			
		||||
            <if test="weight != null">weight = #{weight},</if>
 | 
			
		||||
            <if test="appid != null">appid = #{appid},</if>
 | 
			
		||||
            <if test="phone != null">phone = #{phone},</if>
 | 
			
		||||
@@ -151,18 +157,30 @@
 | 
			
		||||
            <if test="updateTime != null">update_time = #{updateTime},</if>
 | 
			
		||||
            <if test="remark != null">remark = #{remark},</if>
 | 
			
		||||
        </trim>
 | 
			
		||||
        where openid = #{openid}
 | 
			
		||||
        where id = #{id}
 | 
			
		||||
    </update>
 | 
			
		||||
 | 
			
		||||
    <delete id="deleteSysWxUserLogById" parameterType="String">
 | 
			
		||||
        delete from sys_wx_user_log where openid = #{openid}
 | 
			
		||||
    <delete id="deleteSysWxUserLogById" parameterType="Long">
 | 
			
		||||
        delete from sys_wx_user_log where id = #{id}
 | 
			
		||||
    </delete>
 | 
			
		||||
 | 
			
		||||
    <delete id="deleteSysWxUserLogByIds" parameterType="String">
 | 
			
		||||
        delete from sys_wx_user_log where openid in
 | 
			
		||||
        <foreach item="openid" collection="array" open="(" separator="," close=")">
 | 
			
		||||
            #{openid}
 | 
			
		||||
        delete from sys_wx_user_log where id in
 | 
			
		||||
        <foreach item="id" collection="array" open="(" separator="," close=")">
 | 
			
		||||
            #{id}
 | 
			
		||||
        </foreach>
 | 
			
		||||
    </delete>
 | 
			
		||||
 | 
			
		||||
    <!-- 根据openid或手机号查询对应打卡记录 -->
 | 
			
		||||
    <select id="getWxLogInfoList" parameterType="SysWxUserLog" resultMap="WxLogInfo">
 | 
			
		||||
        SELECT wxlog.weight,wxlog.log_time,wxlog.sleep_time, wxlog.wakeup_time,wxlog.defecation, wxlog.water, wxlog.insomnia,wxlog.sport,wxlog.diet
 | 
			
		||||
        FROM sys_wx_user_log wxlog left join sys_wx_user_info wxinfo on wxinfo.openid  = wxlog.openid
 | 
			
		||||
        where wxinfo.openid = #{openid} or wxinfo.phone = #{phone}
 | 
			
		||||
        order by wxlog.log_time desc
 | 
			
		||||
    </select>
 | 
			
		||||
 | 
			
		||||
    <select id="selectSysWxUserLogByDateAndOpenId"  parameterType="SysWxUserLog" resultMap="SysWxUserLogResult">
 | 
			
		||||
        select id from sys_wx_user_log where to_days(log_time) = to_days(#{logTime}) and openid = #{openid} limit 1
 | 
			
		||||
    </select>
 | 
			
		||||
 | 
			
		||||
</mapper>
 | 
			
		||||
@@ -11,10 +11,10 @@
 | 
			
		||||
          />
 | 
			
		||||
        </el-select>
 | 
			
		||||
      </el-form-item>
 | 
			
		||||
      <el-form-item label="手机号" prop="phone">
 | 
			
		||||
      <el-form-item label="客户信息" prop="phone">
 | 
			
		||||
        <el-input
 | 
			
		||||
          v-model="queryParams.phone"
 | 
			
		||||
          placeholder="请输入电话"
 | 
			
		||||
          placeholder="请输入姓名或手机号"
 | 
			
		||||
          clearable
 | 
			
		||||
          size="small"
 | 
			
		||||
          @keyup.enter.native="handleQuery"
 | 
			
		||||
@@ -27,7 +27,7 @@
 | 
			
		||||
    </el-form>
 | 
			
		||||
 | 
			
		||||
    <el-row :gutter="10" class="mb8">
 | 
			
		||||
      <el-col :span="1.5">
 | 
			
		||||
      <!--<el-col :span="1.5">
 | 
			
		||||
        <el-button
 | 
			
		||||
          type="primary"
 | 
			
		||||
          icon="el-icon-plus"
 | 
			
		||||
@@ -36,7 +36,7 @@
 | 
			
		||||
          v-hasPermi="['custom:wxUserLog:add']"
 | 
			
		||||
        >新增
 | 
			
		||||
        </el-button>
 | 
			
		||||
      </el-col>
 | 
			
		||||
      </el-col>-->
 | 
			
		||||
<!--      <el-col :span="1.5">-->
 | 
			
		||||
<!--        <el-button-->
 | 
			
		||||
<!--          type="success"-->
 | 
			
		||||
@@ -86,21 +86,21 @@
 | 
			
		||||
        </template>
 | 
			
		||||
      </el-table-column>
 | 
			
		||||
      <el-table-column label="微信应用" align="center" prop="appid" width="120" :formatter="appidFormat"/>
 | 
			
		||||
      <el-table-column label="姓名" align="center" prop="customer"/>
 | 
			
		||||
      <el-table-column label="姓名" align="center" prop="customerName"/>
 | 
			
		||||
 | 
			
		||||
      <el-table-column label="手机号" align="center" prop="phone" width="180"/>
 | 
			
		||||
      <el-table-column label="营养师" align="center" prop="nutritionist"/>
 | 
			
		||||
      <el-table-column label="打卡日期" align="center" prop="logTime" width="180">
 | 
			
		||||
      <el-table-column label="打卡日期" align="center" prop="logTime" width="120">
 | 
			
		||||
        <template slot-scope="scope">
 | 
			
		||||
          <span>{{ parseTime(scope.row.logTime, '{y}-{m}-{d}') }}</span>
 | 
			
		||||
        </template>
 | 
			
		||||
      </el-table-column>
 | 
			
		||||
      <el-table-column label="睡觉时间" align="center" prop="sleepTime" width="180">
 | 
			
		||||
      <el-table-column label="睡觉时间" align="center" prop="sleepTime" width="120">
 | 
			
		||||
        <!--                <template slot-scope="scope">-->
 | 
			
		||||
        <!--                  <span>{{ parseTime(scope.row.sleepTime, '{y}-{m}-{d}') }}</span>-->
 | 
			
		||||
        <!--                </template>-->
 | 
			
		||||
      </el-table-column>
 | 
			
		||||
      <el-table-column label="起床时间" align="center" prop="wakeupTime" width="180">
 | 
			
		||||
      <el-table-column label="起床时间" align="center" prop="wakeupTime" width="120">
 | 
			
		||||
        <!--        <template slot-scope="scope">-->
 | 
			
		||||
        <!--          <span>{{ parseTime(scope.row.wakeupTime, '{y}-{m}-{d}') }}</span>-->
 | 
			
		||||
        <!--        </template>-->
 | 
			
		||||
@@ -114,7 +114,6 @@
 | 
			
		||||
          <span>{{`${scope.row.water} ml`}}</span>
 | 
			
		||||
        </template>
 | 
			
		||||
      </el-table-column>
 | 
			
		||||
      <el-table-column label="备注" align="center" prop="remark"/>
 | 
			
		||||
      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
 | 
			
		||||
        <template slot-scope="scope">
 | 
			
		||||
          <el-button
 | 
			
		||||
@@ -154,11 +153,7 @@
 | 
			
		||||
              <el-input v-model="form.weight" placeholder="请输入体重"/>
 | 
			
		||||
            </el-form-item>
 | 
			
		||||
          </el-col>
 | 
			
		||||
          <el-col :span="12">
 | 
			
		||||
            <el-form-item label="电话" prop="phone">
 | 
			
		||||
              <el-input v-model="form.phone" placeholder="请输入电话"/>
 | 
			
		||||
            </el-form-item>
 | 
			
		||||
          </el-col>
 | 
			
		||||
        
 | 
			
		||||
          <el-col :span="12">
 | 
			
		||||
            <el-form-item label="打卡日期" prop="logTime">
 | 
			
		||||
              <el-date-picker clearable size="small" style="width: 200px"
 | 
			
		||||
@@ -249,18 +244,7 @@
 | 
			
		||||
              <el-input v-model="form.water" placeholder="请输入饮水量"/>
 | 
			
		||||
            </el-form-item>
 | 
			
		||||
          </el-col>
 | 
			
		||||
          <el-col>
 | 
			
		||||
            <el-form-item label="微信应用" prop="appid">
 | 
			
		||||
              <el-select v-model="form.appid" placeholder="请选择微信appid">
 | 
			
		||||
                <el-option
 | 
			
		||||
                  v-for="dict in appidOptions"
 | 
			
		||||
                  :key="dict.dictValue"
 | 
			
		||||
                  :label="dict.dictLabel"
 | 
			
		||||
                  :value="dict.dictValue"
 | 
			
		||||
                ></el-option>
 | 
			
		||||
              </el-select>
 | 
			
		||||
            </el-form-item>
 | 
			
		||||
          </el-col>
 | 
			
		||||
          
 | 
			
		||||
          <el-col>
 | 
			
		||||
            <el-form-item label="备注" prop="remark">
 | 
			
		||||
              <el-input v-model="form.remark" type="textarea" placeholder="请输入内容"/>
 | 
			
		||||
@@ -441,8 +425,8 @@
 | 
			
		||||
      /** 修改按钮操作 */
 | 
			
		||||
      handleUpdate(row) {
 | 
			
		||||
        this.reset();
 | 
			
		||||
        const openid = row.openid || this.ids
 | 
			
		||||
        getWxUserLog(openid).then(response => {
 | 
			
		||||
        const id = row.id || this.ids
 | 
			
		||||
        getWxUserLog(id).then(response => {
 | 
			
		||||
          this.form = response.data;
 | 
			
		||||
          this.open = true;
 | 
			
		||||
          this.title = "修改微信用户记录";
 | 
			
		||||
@@ -475,13 +459,13 @@
 | 
			
		||||
      },
 | 
			
		||||
      /** 删除按钮操作 */
 | 
			
		||||
      handleDelete(row) {
 | 
			
		||||
        const openids = row.openid || this.ids;
 | 
			
		||||
        this.$confirm('是否确认删除微信用户记录编号为"' + openids + '"的数据项?', "警告", {
 | 
			
		||||
        const ids = row.id || this.ids;
 | 
			
		||||
        this.$confirm('是否确认删除微信用户记录编号为"' + ids + '"的数据项?', "警告", {
 | 
			
		||||
          confirmButtonText: "确定",
 | 
			
		||||
          cancelButtonText: "取消",
 | 
			
		||||
          type: "warning"
 | 
			
		||||
        }).then(function () {
 | 
			
		||||
          return delWxUserLog(openids);
 | 
			
		||||
          return delWxUserLog(ids);
 | 
			
		||||
        }).then(() => {
 | 
			
		||||
          this.getList();
 | 
			
		||||
          this.msgSuccess("删除成功");
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user