From c1cb25ff1c05f90858aaef8cb12ccade4c36dba7 Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Tue, 22 Dec 2020 17:45:53 +0800
Subject: [PATCH] modify

---
 zq-erp/src/main/java/com/matrix/system/app/action/ApiVipLabelAction.java           |   38 ++++
 zq-erp/src/main/java/com/matrix/system/app/vo/VipInfoDetailVo.java                 |  138 +++++++++++++++++
 zq-erp/src/main/java/com/matrix/system/hive/service/SysVipInfoService.java         |    5 
 zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysVipInfoServiceImpl.java |   74 +++++++-
 zq-erp/src/main/java/com/matrix/system/app/dto/AddVipDto.java                      |  146 ++++++++++++++++++
 zq-erp/src/main/java/com/matrix/system/app/action/ApiVipInfoAction.java            |   53 ++++++
 6 files changed, 441 insertions(+), 13 deletions(-)

diff --git a/zq-erp/src/main/java/com/matrix/system/app/action/ApiVipInfoAction.java b/zq-erp/src/main/java/com/matrix/system/app/action/ApiVipInfoAction.java
index 0847e89..457a54a 100644
--- a/zq-erp/src/main/java/com/matrix/system/app/action/ApiVipInfoAction.java
+++ b/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;
+    }
 }
diff --git a/zq-erp/src/main/java/com/matrix/system/app/action/ApiVipLabelAction.java b/zq-erp/src/main/java/com/matrix/system/app/action/ApiVipLabelAction.java
new file mode 100644
index 0000000..1d518c6
--- /dev/null
+++ b/zq-erp/src/main/java/com/matrix/system/app/action/ApiVipLabelAction.java
@@ -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;
+    }
+
+
+}
diff --git a/zq-erp/src/main/java/com/matrix/system/app/dto/AddVipDto.java b/zq-erp/src/main/java/com/matrix/system/app/dto/AddVipDto.java
new file mode 100644
index 0000000..901729b
--- /dev/null
+++ b/zq-erp/src/main/java/com/matrix/system/app/dto/AddVipDto.java
@@ -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;
+    }
+}
diff --git a/zq-erp/src/main/java/com/matrix/system/app/vo/VipInfoDetailVo.java b/zq-erp/src/main/java/com/matrix/system/app/vo/VipInfoDetailVo.java
new file mode 100644
index 0000000..e304ec6
--- /dev/null
+++ b/zq-erp/src/main/java/com/matrix/system/app/vo/VipInfoDetailVo.java
@@ -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;
+    }
+}
diff --git a/zq-erp/src/main/java/com/matrix/system/hive/service/SysVipInfoService.java b/zq-erp/src/main/java/com/matrix/system/hive/service/SysVipInfoService.java
index 48f1932..51f141b 100644
--- a/zq-erp/src/main/java/com/matrix/system/hive/service/SysVipInfoService.java
+++ b/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);
+
+
 }
\ No newline at end of file
diff --git a/zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysVipInfoServiceImpl.java b/zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysVipInfoServiceImpl.java
index dc9a7fa..b3845ce 100644
--- a/zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysVipInfoServiceImpl.java
+++ b/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;
+	}
 }
\ No newline at end of file

--
Gitblit v1.9.1