Helius
2020-12-22 c1cb25ff1c05f90858aaef8cb12ccade4c36dba7
modify
3 files added
3 files modified
454 ■■■■■ changed files
zq-erp/src/main/java/com/matrix/system/app/action/ApiVipInfoAction.java 53 ●●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/app/action/ApiVipLabelAction.java 38 ●●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/app/dto/AddVipDto.java 146 ●●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/app/vo/VipInfoDetailVo.java 138 ●●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/hive/service/SysVipInfoService.java 5 ●●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysVipInfoServiceImpl.java 74 ●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/app/action/ApiVipInfoAction.java
@@ -2,12 +2,17 @@
import com.matrix.core.constance.MatrixConstance;
import com.matrix.core.pojo.AjaxResult;
import com.matrix.core.tools.StringUtils;
import com.matrix.core.tools.WebUtil;
import com.matrix.system.app.dto.AddVipDto;
import com.matrix.system.app.dto.VipInfoListDto;
import com.matrix.system.app.vo.VipInfoListVo;
import com.matrix.system.app.vo.VipInfoVo;
import com.matrix.system.common.bean.CustomerDataDictionary;
import com.matrix.system.common.bean.SysUsers;
import com.matrix.system.common.dao.CustomerDataDictionaryDao;
import com.matrix.system.common.tools.DataAuthUtil;
import com.matrix.system.hive.action.BaseController;
import com.matrix.system.hive.bean.SysVipLevel;
import com.matrix.system.hive.service.SysVipInfoService;
import com.matrix.system.hive.service.SysVipLevelService;
@@ -16,6 +21,7 @@
import io.swagger.annotations.ApiResponse;
import io.swagger.annotations.ApiResponses;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@@ -27,7 +33,7 @@
@Api(value = "ApiVipInfoAction", tags = "会员接口类")
@RestController
@RequestMapping(value = "/api/vip")
public class ApiVipInfoAction {
public class ApiVipInfoAction extends BaseController {
    @Autowired
    private SysVipInfoService sysVipInfoService;
@@ -35,16 +41,26 @@
    @Autowired
    private SysVipLevelService sysVipLevelService;
    @Autowired
    private CustomerDataDictionaryDao customerDataDictionaryDao;
    @ApiOperation(value = "获取会员通讯录列表", notes = "获取会员通讯录列表")
    @ApiResponses({
            @ApiResponse(code = 200, message = "ok", response = VipInfoListVo.class)
    })
    @PostMapping(value = "/findVipInfoList")
    public AjaxResult findVipInfoList(@RequestBody VipInfoListDto vipInfoListDto) {
        if (StringUtils.isBlank(vipInfoListDto.getSort())) {
            vipInfoListDto.setSort("zjm");
        }
        if (StringUtils.isBlank(vipInfoListDto.getOrder())) {
            vipInfoListDto.setOrder("asc");
        }
        return AjaxResult.buildSuccessInstance(sysVipInfoService.findVipAddressBook(vipInfoListDto));
    }
    @ApiOperation(value = "根据id查询用户信息", notes = "根据id查询用户信息")
    @ApiOperation(value = "根据id查询用户信息(通讯录及个人中心)", notes = "根据id查询用户信息")
    @ApiResponses({
            @ApiResponse(code = 200, message = "ok", response = VipInfoVo.class)
    })
@@ -54,6 +70,12 @@
        VipInfoVo vipInfoVo = sysVipInfoService.findApiVipInfoById(id);
        ajaxResult.putInMap("vipInfo", vipInfoVo);
        return ajaxResult;
    }
    @ApiOperation(value = "根据id查询用户详细信息")
    @GetMapping(value = "/findVipInfoDetailById/{id}")
    public AjaxResult findVipInfoDetailById(@PathVariable("id") Long id) {
        return null;
    }
    @ApiOperation(value = "查询会员类型", notes = "查询会员类型")
@@ -70,4 +92,31 @@
        return AjaxResult.buildSuccessInstance(sysVipLevelService.findByModel(sysVipLevel));
    }
    @ApiOperation(value = "获取到店途径列表", notes = "获取到店途径列表")
    @ApiResponses({
            @ApiResponse(code = 200, message = "ok", response = CustomerDataDictionary.class)
    })
    @GetMapping(value = "/findArrivalWayList")
    public AjaxResult findArrivalWayList() {
        List<CustomerDataDictionary> ddtj = customerDataDictionaryDao.selectByParentCode("DDTJ", getMe().getCompanyId());
        return AjaxResult.buildSuccessInstance(ddtj);
    }
    @ApiOperation(value = "添加会员", notes = "添加会员")
    @PostMapping(value = "/addVip")
    public AjaxResult addVip(@RequestBody @Validated AddVipDto addVipDto) {
        int i = sysVipInfoService.apiAddVip(addVipDto);
        if (i > 0) {
            return AjaxResult.buildSuccessInstance("新增成功");
        }
        return AjaxResult.buildSuccessInstance("新增失败");
    }
    @ApiOperation(value = "编辑会员", notes = "编辑会员")
    @PostMapping(value = "/modifyVip")
    public AjaxResult modifyVip(@RequestBody AddVipDto addVipDto) {
        return null;
    }
}
zq-erp/src/main/java/com/matrix/system/app/action/ApiVipLabelAction.java
New file
@@ -0,0 +1,38 @@
package com.matrix.system.app.action;
import com.matrix.core.pojo.AjaxResult;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.*;
/**
 * @author wzy
 * @date 2020-12-22
 **/
//@Api(value = "ApiVipLabelAction", tags = "客户标签接口类")
@RestController
@RequestMapping(value = "/api/label")
public class ApiVipLabelAction {
    @ApiOperation(value = "获取客户标签列表", notes = "获取客户标签列表")
    @GetMapping(value = "/findLabelByVipId/{vipId}")
    public AjaxResult findLabelByVipId(@PathVariable("vipId") Long vipId) {
        return null;
    }
    @ApiOperation(value = "添加客户标签", notes = "添加客户标签")
    @PostMapping(value = "/addLabel")
    public AjaxResult addLabel() {
        return null;
    }
    @ApiOperation(value = "删除标签", notes = "删除标签")
    @GetMapping(value = "/delById/{id}")
    public AjaxResult delById(@PathVariable("id") Long id) {
        return null;
    }
}
zq-erp/src/main/java/com/matrix/system/app/dto/AddVipDto.java
New file
@@ -0,0 +1,146 @@
package com.matrix.system.app.dto;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.matrix.core.tools.DateUtil;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.Date;
import java.util.List;
/**
 * @author wzy
 * @date 2020-12-22
 **/
@ApiModel(value = "AddVipDto", description = "添加会员接收参数类")
public class AddVipDto {
    @NotBlank(message = "会员编号不能为空")
    @ApiModelProperty(value = "会员编号")
    private String vipNo;
    @NotBlank(message = "姓名不能为空")
    @ApiModelProperty(value = "会员姓名")
    private String vipName;
    @NotBlank(message = "手机号不能为空")
    @ApiModelProperty(value = "手机号")
    private String phone;
    @NotBlank(message = "性别不能为空")
    @ApiModelProperty(value = "性别", example = "男/女")
    private String sex;
    @NotNull(message = "生日不能为空")
    @ApiModelProperty(value = "生日")
    @JsonFormat(pattern = DateUtil.DATE_FORMAT_DD, timezone = "GMT+8")
    private Date birthday;
    @ApiModelProperty(value = "省市区", example = "湖南省,长沙市,岳麓区")
    private String areas;
    @ApiModelProperty(value = "详细地址")
    private String address;
    @ApiModelProperty(value = "到店途径", example = "网络团购")
    private String arrivalWay;
    @ApiModelProperty(value = "推荐人ID")
    private Long recommendId;
    @ApiModelProperty(value = "备注")
    private String remark;
    @ApiModelProperty(value = "标签列表")
    private List<String> labels;
    public String getVipNo() {
        return vipNo;
    }
    public void setVipNo(String vipNo) {
        this.vipNo = vipNo;
    }
    public String getVipName() {
        return vipName;
    }
    public void setVipName(String vipName) {
        this.vipName = vipName;
    }
    public String getPhone() {
        return phone;
    }
    public void setPhone(String phone) {
        this.phone = phone;
    }
    public String getSex() {
        return sex;
    }
    public void setSex(String sex) {
        this.sex = sex;
    }
    public Date getBirthday() {
        return birthday;
    }
    public void setBirthday(Date birthday) {
        this.birthday = birthday;
    }
    public String getAreas() {
        return areas;
    }
    public void setAreas(String areas) {
        this.areas = areas;
    }
    public String getAddress() {
        return address;
    }
    public void setAddress(String address) {
        this.address = address;
    }
    public String getArrivalWay() {
        return arrivalWay;
    }
    public void setArrivalWay(String arrivalWay) {
        this.arrivalWay = arrivalWay;
    }
    public Long getRecommendId() {
        return recommendId;
    }
    public void setRecommendId(Long recommendId) {
        this.recommendId = recommendId;
    }
    public String getRemark() {
        return remark;
    }
    public void setRemark(String remark) {
        this.remark = remark;
    }
    public List<String> getLabels() {
        return labels;
    }
    public void setLabels(List<String> labels) {
        this.labels = labels;
    }
}
zq-erp/src/main/java/com/matrix/system/app/vo/VipInfoDetailVo.java
New file
@@ -0,0 +1,138 @@
package com.matrix.system.app.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.matrix.core.tools.DateUtil;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.util.Date;
/**
 * @author wzy
 * @date 2020-12-22
 **/
@ApiModel(value = "VipInfoDetailVo", description = "客户详细信息接口返回类")
public class VipInfoDetailVo {
    @ApiModelProperty(value = "会员姓名")
    private String vipName;
    @ApiModelProperty(value = "手机号")
    private String phone;
    @ApiModelProperty(value = "性别")
    private String sex;
    @ApiModelProperty(value = "生日")
    @JsonFormat(pattern = DateUtil.DATE_FORMAT_DD, timezone = "GMT+8")
    private Date birthday;
    @ApiModelProperty(value = "省")
    private String province;
    @ApiModelProperty(value = "市")
    private String city;
    @ApiModelProperty(value = "区")
    private String area;
    @ApiModelProperty(value = "详细地址")
    private String address;
    @ApiModelProperty(value = "到店途径")
    private String arrivalWay;
    @ApiModelProperty(value = "推荐人ID")
    private Long recommendId;
    @ApiModelProperty(value = "备注")
    private String remark;
    public String getVipName() {
        return vipName;
    }
    public void setVipName(String vipName) {
        this.vipName = vipName;
    }
    public String getPhone() {
        return phone;
    }
    public void setPhone(String phone) {
        this.phone = phone;
    }
    public String getSex() {
        return sex;
    }
    public void setSex(String sex) {
        this.sex = sex;
    }
    public Date getBirthday() {
        return birthday;
    }
    public void setBirthday(Date birthday) {
        this.birthday = birthday;
    }
    public String getProvince() {
        return province;
    }
    public void setProvince(String province) {
        this.province = province;
    }
    public String getCity() {
        return city;
    }
    public void setCity(String city) {
        this.city = city;
    }
    public String getArea() {
        return area;
    }
    public void setArea(String area) {
        this.area = area;
    }
    public String getAddress() {
        return address;
    }
    public void setAddress(String address) {
        this.address = address;
    }
    public String getArrivalWay() {
        return arrivalWay;
    }
    public void setArrivalWay(String arrivalWay) {
        this.arrivalWay = arrivalWay;
    }
    public Long getRecommendId() {
        return recommendId;
    }
    public void setRecommendId(Long recommendId) {
        this.recommendId = recommendId;
    }
    public String getRemark() {
        return remark;
    }
    public void setRemark(String remark) {
        this.remark = remark;
    }
}
zq-erp/src/main/java/com/matrix/system/hive/service/SysVipInfoService.java
@@ -1,6 +1,7 @@
package com.matrix.system.hive.service;
import com.matrix.core.pojo.PaginationVO;
import com.matrix.system.app.dto.AddVipDto;
import com.matrix.system.app.dto.VipInfoListDto;
import com.matrix.system.app.vo.VipInfoListVo;
import com.matrix.system.hive.bean.SysVipInfo;
@@ -186,4 +187,8 @@
        List<VipInfoListVo> findVipAddressBook(VipInfoListDto vipInfoListDto);
        com.matrix.system.app.vo.VipInfoVo findApiVipInfoById(Long id);
        int apiAddVip(AddVipDto addVipDto);
}
zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysVipInfoServiceImpl.java
@@ -6,6 +6,7 @@
import com.matrix.core.tools.*;
import com.matrix.core.tools.excl.ExcelSheetPO;
import com.matrix.core.tools.excl.ExcelUtil;
import com.matrix.system.app.dto.AddVipDto;
import com.matrix.system.app.dto.VipInfoListDto;
import com.matrix.system.app.vo.VipInfoListVo;
import com.matrix.system.common.bean.SysUsers;
@@ -13,14 +14,8 @@
import com.matrix.system.common.tools.ServiceUtil;
import com.matrix.system.constance.Dictionary;
import com.matrix.system.constance.TableMapping;
import com.matrix.system.hive.bean.MoneyCardUse;
import com.matrix.system.hive.bean.MyBeatician;
import com.matrix.system.hive.bean.SysVipInfo;
import com.matrix.system.hive.bean.VipAnswer;
import com.matrix.system.hive.dao.MoneyCardUseDao;
import com.matrix.system.hive.dao.MyBeaticianDao;
import com.matrix.system.hive.dao.SysVipInfoDao;
import com.matrix.system.hive.dao.VipAnswerDao;
import com.matrix.system.hive.bean.*;
import com.matrix.system.hive.dao.*;
import com.matrix.system.hive.plugin.util.CollectionUtils;
import com.matrix.system.hive.pojo.VipInfoVo;
import com.matrix.system.hive.service.SysVipInfoService;
@@ -32,9 +27,7 @@
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.security.NoSuchAlgorithmException;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.*;
/**
@@ -59,6 +52,9 @@
    @Autowired
    private MoneyCardUseDao moneyCardUseDao;
    @Autowired
    private SysVipLabelDao sysVipLabelDao;
    /**
     * 新增会员储值卡
@@ -433,4 +429,60 @@
    public com.matrix.system.app.vo.VipInfoVo findApiVipInfoById(Long id) {
        return sysVipInfoDao.selectVipInfoById(id);
    }
    @Override
    public int apiAddVip(AddVipDto addVipDto) {
        SysUsers user = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY);
        if (serviceUtil.addCheckRepeatTowColumn(TableMapping.SYS_VIP_INFO, "VIP_NO", addVipDto.getVipNo(),
                "company_id",user.getCompanyId())) {
            throw new GlobleException("编号已存在!");
        }
        if (serviceUtil.addCheckRepeatTowColumn(TableMapping.SYS_VIP_INFO, "PHONE", addVipDto.getPhone(),
                "company_id",user.getCompanyId() )) {
            throw new GlobleException("手机已被注册!");
        }
        SysVipInfo vipInfo = new SysVipInfo();
        vipInfo.setVipName(addVipDto.getVipName());
        vipInfo.setVipNo(addVipDto.getVipNo());
        vipInfo.setSex(addVipDto.getSex());
        vipInfo.setArrivalWay(addVipDto.getArrivalWay());
        vipInfo.setPhone(addVipDto.getPhone());
        vipInfo.setAddr(addVipDto.getAddress());
        vipInfo.setRemark(addVipDto.getRemark());
        vipInfo.setInDate(new Date());
        vipInfo.setPointAll(0);
        vipInfo.setBirthday1(addVipDto.getBirthday());
        vipInfo.setVipState(Dictionary.VIP_STATE_HY);
        vipInfo.setStaffId(user.getSuId());
        vipInfo.setShopId(user.getShopId());
        vipInfo.setVipType(Dictionary.VIP_TYPE_NOCARD);
        vipInfo.setShopId(user.getShopId());
        vipInfo.setCompanyId(user.getCompanyId());
        vipInfo.setCreateTime(new Date());
        vipInfo.setPointAll(0);
        vipInfo.setIsDeal(SysVipInfo.UNDEAL_VIP);
        vipInfo.setZjm(StringUtils.toHanyuPinyin(vipInfo.getVipName())+","+StringUtils.toHeadWordHanyuPinyin(vipInfo.getVipName()));
        int i=sysVipInfoDao.insert(vipInfo);
        if (CollectionUtils.isNotEmpty(addVipDto.getLabels())) {
            Set<String> labels = new HashSet<>(addVipDto.getLabels());
            Iterator<String> iterator = labels.iterator();
            if (iterator.hasNext()) {
                SysVipLabel sysVipLabel = new SysVipLabel();
                sysVipLabel.setCreateTime(new Date());
                sysVipLabel.setCreateBy(user.getSuName());
                sysVipLabel.setLabel(iterator.next());
                sysVipLabel.setVipId(vipInfo.getId());
                sysVipLabelDao.insert(sysVipLabel);
            }
        }
        //创建用户默认储值卡
        addVipDefaultCard(vipInfo.getId());
        return i;
    }
}