k94314517
2024-07-11 6a8bcc5d6dcf0fcd98458e87122a64ddd7dfae9a
代码提交
已添加3个文件
已修改5个文件
411 ■■■■■ 文件已修改
server/service/src/main/java/com/doumee/dao/business/model/Customer.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/dao/business/model/CustomerLog.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/dao/web/reqeust/FreeCustomizationDTO.java 48 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/dao/web/reqeust/RenovationCalculatorDTO.java 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/dao/web/reqeust/TestTrimStyleDTO.java 48 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/service/business/CustomerService.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/service/business/impl/CustomerServiceImpl.java 202 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/web/src/main/java/com/doumee/api/web/CustomerApi.java 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/dao/business/model/Customer.java
@@ -94,6 +94,9 @@
    @ExcelColumn(name="区域")
    private String areaName;
    @ApiModelProperty(value = "区域编码")
    @ExcelColumn(name="区域编码")
    private String areaCode;
    @ApiModelProperty(value = "系统版本")
    @ExcelColumn(name="系统版本")
    private String sysVersion;
@@ -118,8 +121,5 @@
    @ExcelColumn(name="省份编码")
    private String provinceCode;
    @ApiModelProperty(value = "区域编码")
    @ExcelColumn(name="区域编码")
    private String areaCode;
}
server/service/src/main/java/com/doumee/dao/business/model/CustomerLog.java
@@ -138,4 +138,16 @@
    @ExcelColumn(name="crm提交备注")
    private String crmInfo;
    @ApiModelProperty(value = "区域")
    @ExcelColumn(name="区域")
    private String areaName;
    @ApiModelProperty(value = "区域编码")
    @ExcelColumn(name="区域编码")
    private String areaCode;
    @ApiModelProperty(value = "姓名")
    @ExcelColumn(name="姓名")
    private String name;
}
server/service/src/main/java/com/doumee/dao/web/reqeust/FreeCustomizationDTO.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,48 @@
package com.doumee.dao.web.reqeust;
import com.doumee.core.annotation.excel.ExcelColumn;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
/**
 * Created by IntelliJ IDEA.
 *
 * @Author : Rk
 * @create 2024/7/11 17:19
 */
@Data
@ApiModel("0元定制报名请求类")
public class FreeCustomizationDTO {
    @ApiModelProperty(value = "用户主键", hidden = true)
    private long memberId;
    @ApiModelProperty(value = "用户姓名")
    private String name;
    @ApiModelProperty(value = "手机号")
    private String phone;
    @ApiModelProperty(value = "省份")
    private String provinceName;
    @ApiModelProperty(value = "城市")
    private String cityName;
    @ApiModelProperty(value = "区域")
    private String areaName;
    @ApiModelProperty(value = "城市编码")
    private String cityCode;
    @ApiModelProperty(value = "省份编码")
    private String provinceCode;
    @ApiModelProperty(value = "区域编码")
    private String areaCode;
}
server/service/src/main/java/com/doumee/dao/web/reqeust/RenovationCalculatorDTO.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,36 @@
package com.doumee.dao.web.reqeust;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
/**
 * Created by IntelliJ IDEA.
 *
 * @Author : Rk
 * @create 2024/7/11 17:19
 */
@Data
@ApiModel("装修计算请求类")
public class RenovationCalculatorDTO {
    @ApiModelProperty(value = "用户主键", hidden = true)
    private long memberId;
    @ApiModelProperty(value = "房屋类型:0精装 1毛坯")
    private String houseStatus;
    @ApiModelProperty(value = "户型信息:0一室一厅 1两室一厅 2两室两厅 3三室两厅 4四室两厅 5五室两厅及以上")
    private String houseType;
    @ApiModelProperty(value = "房屋面积")
    private String area;
    @ApiModelProperty(value = "装修预算(万元)")
    private BigDecimal budget;
}
server/service/src/main/java/com/doumee/dao/web/reqeust/TestTrimStyleDTO.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,48 @@
package com.doumee.dao.web.reqeust;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
 * Created by IntelliJ IDEA.
 *
 * @Author : Rk
 * @create 2024/7/11 17:19
 */
@Data
@ApiModel("测试装修风格请求类")
public class TestTrimStyleDTO {
    @ApiModelProperty(value = "用户主键", hidden = true)
    private long memberId;
    @ApiModelProperty(value = "房子户型:0一居 1两居 2三居 3四居及以上")
    private String houseType;
    @ApiModelProperty(value = "手机号")
    private String phone;
    @ApiModelProperty(value = "性别 0男 1女")
    private Integer sex;
    @ApiModelProperty(value = "年龄段 0-70后 1-80后 2-90后 3-00后")
    private String ageInfo;
    @ApiModelProperty(value = "风格(风格测试用) 0-5")
    private String styleInfo;
    @ApiModelProperty(value = "省份")
    private String provinceName;
    @ApiModelProperty(value = "城市")
    private String cityName;
    @ApiModelProperty(value = "城市编码")
    private String cityCode;
    @ApiModelProperty(value = "省份编码")
    private String provinceCode;
}
server/service/src/main/java/com/doumee/service/business/CustomerService.java
@@ -3,6 +3,10 @@
import com.doumee.core.model.PageData;
import com.doumee.core.model.PageWrap;
import com.doumee.dao.business.model.Customer;
import com.doumee.dao.web.reqeust.FreeCustomizationDTO;
import com.doumee.dao.web.reqeust.RenovationCalculatorDTO;
import com.doumee.dao.web.reqeust.TestTrimStyleDTO;
import java.util.List;
/**
@@ -94,4 +98,22 @@
     * @return long
     */
    long count(Customer customer);
    /**
     * æˆ¿å±‹è£…修计算器信息存储
     * @param renovationCalculatorDTO
     */
    void saveRenovationCalculator(RenovationCalculatorDTO renovationCalculatorDTO);
    /**
     * 0元定制信息
     * @param freeCustomizationDTO
     */
    void saveFreeCustomizationApply(FreeCustomizationDTO freeCustomizationDTO);
    /**
     * æµ‹è¯•装修风格
     * @param testTrimStyleDTO
     */
    void saveTestTrimStyle(TestTrimStyleDTO testTrimStyleDTO);
}
server/service/src/main/java/com/doumee/service/business/impl/CustomerServiceImpl.java
@@ -1,20 +1,38 @@
package com.doumee.service.business.impl;
import com.alibaba.druid.sql.visitor.functions.Concat;
import com.doumee.core.constants.ResponseStatus;
import com.doumee.core.exception.BusinessException;
import com.doumee.core.model.PageData;
import com.doumee.core.model.PageWrap;
import com.doumee.core.utils.Constants;
import com.doumee.core.utils.Utils;
import com.doumee.dao.business.CustomerLogMapper;
import com.doumee.dao.business.CustomerMapper;
import com.doumee.dao.business.MemberMapper;
import com.doumee.dao.business.model.Customer;
import com.doumee.dao.business.model.CustomerLog;
import com.doumee.dao.business.model.Member;
import com.doumee.dao.web.reqeust.FreeCustomizationDTO;
import com.doumee.dao.web.reqeust.RenovationCalculatorDTO;
import com.doumee.dao.web.reqeust.TestTrimStyleDTO;
import com.doumee.service.business.CustomerLogService;
import com.doumee.service.business.CustomerService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.checkerframework.checker.units.qual.A;
import org.checkerframework.checker.units.qual.C;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import java.util.Objects;
/**
 * å®¢æˆ·ä¿¡æ¯è¡¨Service实现
@@ -26,6 +44,13 @@
    @Autowired
    private CustomerMapper customerMapper;
    @Autowired
    private CustomerLogMapper customerLogMapper;
    @Autowired
    private MemberMapper memberMapper;
    @Override
    public Long create(Customer customer) {
@@ -185,13 +210,186 @@
    public void saveRenovationCalculator(){
    @Override
    public void saveRenovationCalculator(RenovationCalculatorDTO renovationCalculatorDTO){
        if(Objects.isNull(renovationCalculatorDTO)
            || Objects.isNull(renovationCalculatorDTO.getMemberId())
            || Objects.isNull(renovationCalculatorDTO.getHouseStatus())
            || Objects.isNull(renovationCalculatorDTO.getHouseType())
            || Objects.isNull(renovationCalculatorDTO.getBudget())
            || StringUtils.isEmpty(renovationCalculatorDTO.getArea())
        ){
            throw new BusinessException(ResponseStatus.BAD_REQUEST);
        }
        Member member = memberMapper.selectById(renovationCalculatorDTO.getMemberId());
        if(Objects.isNull(member)){
            throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"未查询到用户信息");
        }
        if(StringUtils.isEmpty(member.getPhone())){
            throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"未授权手机号");
        }
        Customer customer = customerMapper.selectOne(new QueryWrapper<Customer>().lambda().eq(Customer::getPhone,member.getPhone()).eq(Customer::getIsdeleted, Constants.ZERO).last("limit 1"));
        if(Objects.isNull(customer)){
            customer = new Customer();
            customer.setIsdeleted(Constants.ZERO);
            customer.setPhone(member.getPhone());
            customer.setCreateDate(new Date());
        } else{
            customer.setEditDate(new Date());
        }
        customer.setOpenid(member.getOpenid());
        customer.setMemberId(member.getId());
        customerMapper.insertOrUpdate(customer);
        //存储 customerLog æ•°æ®
        CustomerLog customerLog = new CustomerLog();
        customerLog.setCreateDate(new Date());
        customerLog.setIsdeleted(Constants.ZERO);
        customerLog.setType(Constants.TWO);
        customerLog.setCrmStatus(Constants.ZERO);
        customerLog.setPhone(customer.getPhone());
        customerLog.setBudget(renovationCalculatorDTO.getBudget().multiply(new BigDecimal(10000)).toString());
        customerLog.setHouseStatus(renovationCalculatorDTO.getHouseStatus());
        customerLog.setArea(renovationCalculatorDTO.getArea());
        customerLog.setHouseType(renovationCalculatorDTO.getHouseType());
        customerLog.setCostomerId(customer.getId().toString());
        customerLogMapper.insert(customerLog);
    }
    @Override
    public void saveFreeCustomizationApply(FreeCustomizationDTO freeCustomizationDTO){
        if(Objects.isNull(freeCustomizationDTO)
                || Objects.isNull(freeCustomizationDTO.getMemberId())
                || StringUtils.isEmpty(freeCustomizationDTO.getName())
                || StringUtils.isEmpty(freeCustomizationDTO.getPhone())
                || StringUtils.isEmpty(freeCustomizationDTO.getCityCode())
                || StringUtils.isEmpty(freeCustomizationDTO.getCityName())
                || StringUtils.isEmpty(freeCustomizationDTO.getProvinceName())
                || StringUtils.isEmpty(freeCustomizationDTO.getProvinceCode())
                || StringUtils.isEmpty(freeCustomizationDTO.getAreaCode())
                || StringUtils.isEmpty(freeCustomizationDTO.getAreaName())
        ){
            throw new BusinessException(ResponseStatus.BAD_REQUEST);
        }
        Member member = memberMapper.selectById(freeCustomizationDTO.getMemberId());
        if(Objects.isNull(member)){
            throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"未查询到用户信息");
        }
        if(StringUtils.isEmpty(member.getPhone())){
            throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"未授权手机号");
        }
        Customer customer = customerMapper.selectOne(new QueryWrapper<Customer>().lambda()
                .eq(Customer::getPhone,freeCustomizationDTO.getPhone()).eq(Customer::getIsdeleted, Constants.ZERO).last("limit 1"));
        if(Objects.isNull(customer)){
            customer = new Customer();
            customer.setPhone(freeCustomizationDTO.getPhone());
            customer.setCreateDate(new Date());
            customer.setIsdeleted(Constants.ZERO);
        } else{
            customer.setEditDate(new Date());
        }
        customer.setOpenid(member.getOpenid());
        customer.setMemberId(member.getId());
        customer.setName(freeCustomizationDTO.getName());
        customer.setProName(freeCustomizationDTO.getProvinceName());
        customer.setCityName(freeCustomizationDTO.getCityName());
        customer.setAreaName(freeCustomizationDTO.getAreaName());
        customer.setProvinceCode(freeCustomizationDTO.getProvinceCode());
        customer.setCityCode(freeCustomizationDTO.getCityCode());
        customer.setAreaCode(freeCustomizationDTO.getAreaCode());
        customerMapper.insertOrUpdate(customer);
        //存储 customerLog æ•°æ®
        CustomerLog customerLog = new CustomerLog();
        customerLog.setCreateDate(new Date());
        customerLog.setIsdeleted(Constants.ZERO);
        customerLog.setType(Constants.ONE);
        customerLog.setCrmStatus(Constants.ZERO);
        customerLog.setPhone(customer.getPhone());
        customerLog.setCostomerId(customer.getId().toString());
        customerLog.setProvinceName(freeCustomizationDTO.getProvinceName());
        customerLog.setCityName(freeCustomizationDTO.getCityName());
        customerLog.setAreaCode(freeCustomizationDTO.getAreaName());
        customerLog.setProvicneCode(freeCustomizationDTO.getProvinceCode());
        customerLog.setCityCode(freeCustomizationDTO.getCityCode());
        customerLog.setAreaCode(freeCustomizationDTO.getAreaCode());
        customerLog.setName(freeCustomizationDTO.getName());
        customerLog.setPhone(freeCustomizationDTO.getPhone());
        customerLogMapper.insert(customerLog);
    }
    @Override
    public void saveTestTrimStyle(TestTrimStyleDTO testTrimStyleDTO){
        if(Objects.isNull(testTrimStyleDTO)
                || Objects.isNull(testTrimStyleDTO.getMemberId())
                || StringUtils.isEmpty(testTrimStyleDTO.getStyleInfo())
                || StringUtils.isEmpty(testTrimStyleDTO.getAgeInfo())
                || Objects.isNull(testTrimStyleDTO.getSex())
                || StringUtils.isEmpty(testTrimStyleDTO.getHouseType())
                || StringUtils.isEmpty(testTrimStyleDTO.getAgeInfo())
                || StringUtils.isEmpty(testTrimStyleDTO.getPhone())
                || StringUtils.isEmpty(testTrimStyleDTO.getCityCode())
                || StringUtils.isEmpty(testTrimStyleDTO.getCityName())
                || StringUtils.isEmpty(testTrimStyleDTO.getProvinceName())
                || StringUtils.isEmpty(testTrimStyleDTO.getProvinceCode())
        ){
            throw new BusinessException(ResponseStatus.BAD_REQUEST);
        }
        Member member = memberMapper.selectById(testTrimStyleDTO.getMemberId());
        if(Objects.isNull(member)){
            throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"未查询到用户信息");
        }
        if(StringUtils.isEmpty(member.getPhone())){
            throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"未授权手机号");
        }
        Customer customer = customerMapper.selectOne(new QueryWrapper<Customer>().lambda()
                .eq(Customer::getPhone,testTrimStyleDTO.getPhone()).eq(Customer::getIsdeleted, Constants.ZERO).last("limit 1"));
        if(Objects.isNull(customer)){
            customer = new Customer();
            customer.setPhone(testTrimStyleDTO.getPhone());
            customer.setCreateDate(new Date());
            customer.setIsdeleted(Constants.ZERO);
        } else{
            customer.setEditDate(new Date());
        }
        customer.setOpenid(member.getOpenid());
        customer.setMemberId(member.getId());
        customer.setProName(testTrimStyleDTO.getProvinceName());
        customer.setCityName(testTrimStyleDTO.getCityName());
        customer.setProvinceCode(testTrimStyleDTO.getProvinceCode());
        customer.setCityCode(testTrimStyleDTO.getCityCode());
        customerMapper.insertOrUpdate(customer);
        //存储 customerLog æ•°æ®
        CustomerLog customerLog = new CustomerLog();
        customerLog.setCreateDate(new Date());
        customerLog.setIsdeleted(Constants.ZERO);
        customerLog.setType(Constants.ZERO);
        customerLog.setCrmStatus(Constants.ZERO);
        customerLog.setPhone(customer.getPhone());
        customerLog.setCostomerId(customer.getId().toString());
        customerLog.setProvinceName(testTrimStyleDTO.getProvinceName());
        customerLog.setCityName(testTrimStyleDTO.getCityName());
        customerLog.setProvicneCode(testTrimStyleDTO.getProvinceCode());
        customerLog.setCityCode(testTrimStyleDTO.getCityCode());
        customerLog.setAgeInfo(testTrimStyleDTO.getAgeInfo());
        customerLog.setHouseType(testTrimStyleDTO.getHouseType());
        customerLog.setStyleInfo(testTrimStyleDTO.getStyleInfo());
        customerLog.setSex(testTrimStyleDTO.getSex());
        customerLog.setAgeInfo(testTrimStyleDTO.getAgeInfo());
        customerLog.setPhone(testTrimStyleDTO.getPhone());
        customerLogMapper.insert(customerLog);
    }
server/web/src/main/java/com/doumee/api/web/CustomerApi.java
@@ -4,8 +4,7 @@
import com.doumee.core.annotation.trace.Trace;
import com.doumee.core.model.ApiResponse;
import com.doumee.dao.business.model.Member;
import com.doumee.dao.web.reqeust.EditMemberRequest;
import com.doumee.dao.web.reqeust.WxPhoneRequest;
import com.doumee.dao.web.reqeust.*;
import com.doumee.dao.web.response.AccountResponse;
import com.doumee.dao.web.response.BjParamConfigResponse;
import com.doumee.service.business.BjParamService;
@@ -94,8 +93,42 @@
    }
    @LoginRequired
    @ApiOperation(value = "装修计算器信息存储", notes = "客户端小程序")
    @PostMapping("/saveRenovationCalculator")
    @ApiImplicitParams({
            @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true)
    })
    public ApiResponse saveRenovationCalculator(@RequestBody RenovationCalculatorDTO renovationCalculatorDTO) {
        renovationCalculatorDTO.setMemberId(getMemberId());
        customerService.saveRenovationCalculator(renovationCalculatorDTO);
        return  ApiResponse.success("操作成功");
    }
    @LoginRequired
    @ApiOperation(value = "0元定制信息", notes = "客户端小程序")
    @PostMapping("/saveFreeCustomizationApply")
    @ApiImplicitParams({
            @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true)
    })
    public ApiResponse saveFreeCustomizationApply(@RequestBody FreeCustomizationDTO freeCustomizationDTO) {
        freeCustomizationDTO.setMemberId(getMemberId());
        customerService.saveFreeCustomizationApply(freeCustomizationDTO);
        return  ApiResponse.success("操作成功");
    }
    @LoginRequired
    @ApiOperation(value = "测试装修风格", notes = "客户端小程序")
    @PostMapping("/saveTestTrimStyle")
    @ApiImplicitParams({
            @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true)
    })
    public ApiResponse saveTestTrimStyle(@RequestBody TestTrimStyleDTO testTrimStyleDTO) {
        testTrimStyleDTO.setMemberId(getMemberId());
        customerService.saveTestTrimStyle(testTrimStyleDTO);
        return  ApiResponse.success("操作成功");
    }
}