From 339b59abc36c0aa07b99cb6de1b0553de2f48d7e Mon Sep 17 00:00:00 2001 From: Helius <wangdoubleone@gmail.com> Date: Tue, 22 Dec 2020 18:53:44 +0800 Subject: [PATCH] modify --- zq-erp/src/main/resources/mybatis/mapper/hive/SysVipInfoDao.xml | 33 ++++ zq-erp/src/main/java/com/matrix/system/app/vo/VipInfoDetailVo.java | 24 +++ zq-erp/src/main/java/com/matrix/system/app/dto/ModifyVipDto.java | 146 ++++++++++++++++++++ zq-erp/src/main/resources/mybatis/mapper/hive/SysVipLabelDao.xml | 5 zq-erp/src/main/java/com/matrix/system/hive/service/SysVipInfoService.java | 4 zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysVipInfoServiceImpl.java | 101 ++++++++++++- zq-erp/src/main/java/com/matrix/system/hive/bean/SysVipInfo.java | 52 +++++++ zq-erp/src/main/java/com/matrix/system/app/action/ApiVipInfoAction.java | 20 ++ zq-erp/src/main/java/com/matrix/system/hive/dao/SysVipLabelDao.java | 2 9 files changed, 369 insertions(+), 18 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 457a54a..f091ec5 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 @@ -5,7 +5,9 @@ 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.ModifyVipDto; import com.matrix.system.app.dto.VipInfoListDto; +import com.matrix.system.app.vo.VipInfoDetailVo; import com.matrix.system.app.vo.VipInfoListVo; import com.matrix.system.app.vo.VipInfoVo; import com.matrix.system.common.bean.CustomerDataDictionary; @@ -73,9 +75,15 @@ } @ApiOperation(value = "根据id查询用户详细信息") + @ApiResponses({ + @ApiResponse(code = 200, message = "ok", response = VipInfoDetailVo.class) + }) @GetMapping(value = "/findVipInfoDetailById/{id}") public AjaxResult findVipInfoDetailById(@PathVariable("id") Long id) { - return null; + VipInfoDetailVo vipInfoDetailVo = sysVipInfoService.findVipInfoDetail(id); + AjaxResult ajaxResult = AjaxResult.buildSuccessInstance("获取成功"); + ajaxResult.putInMap("vipInfo", vipInfoDetailVo); + return ajaxResult; } @ApiOperation(value = "查询会员类型", notes = "查询会员类型") @@ -111,12 +119,16 @@ if (i > 0) { return AjaxResult.buildSuccessInstance("新增成功"); } - return AjaxResult.buildSuccessInstance("新增失败"); + return AjaxResult.buildFailInstance("新增失败"); } @ApiOperation(value = "编辑会员", notes = "编辑会员") @PostMapping(value = "/modifyVip") - public AjaxResult modifyVip(@RequestBody AddVipDto addVipDto) { - return null; + public AjaxResult modifyVip(@RequestBody ModifyVipDto modifyVipDto) { + int i = sysVipInfoService.apiModifyVip(modifyVipDto); + if (i > 0) { + return AjaxResult.buildSuccessInstance("修改成功"); + } + return AjaxResult.buildFailInstance("修改失败"); } } diff --git a/zq-erp/src/main/java/com/matrix/system/app/dto/ModifyVipDto.java b/zq-erp/src/main/java/com/matrix/system/app/dto/ModifyVipDto.java new file mode 100644 index 0000000..7ea47d9 --- /dev/null +++ b/zq-erp/src/main/java/com/matrix/system/app/dto/ModifyVipDto.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 = "ModifyVipDto", description = "修改会员接收参数类") +public class ModifyVipDto { + + @NotNull(message = "参数错误") + @ApiModelProperty(value = "会员ID") + private Long vipId; + + @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 Long getVipId() { + return vipId; + } + + public void setVipId(Long vipId) { + this.vipId = vipId; + } + + 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 index e304ec6..5f4d89b 100644 --- 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 @@ -2,10 +2,12 @@ import com.fasterxml.jackson.annotation.JsonFormat; import com.matrix.core.tools.DateUtil; +import com.matrix.system.hive.bean.SysVipLabel; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import java.util.Date; +import java.util.List; /** * @author wzy @@ -13,6 +15,9 @@ **/ @ApiModel(value = "VipInfoDetailVo", description = "客户详细信息接口返回类") public class VipInfoDetailVo { + + @ApiModelProperty(value = "会员ID") + private Long id; @ApiModelProperty(value = "会员姓名") private String vipName; @@ -48,6 +53,25 @@ @ApiModelProperty(value = "备注") private String remark; + @ApiModelProperty(value = "标签") + private List<SysVipLabel> labels; + + public List<SysVipLabel> getLabels() { + return labels; + } + + public void setLabels(List<SysVipLabel> labels) { + this.labels = labels; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + public String getVipName() { return vipName; } diff --git a/zq-erp/src/main/java/com/matrix/system/hive/bean/SysVipInfo.java b/zq-erp/src/main/java/com/matrix/system/hive/bean/SysVipInfo.java index 350d487..308720b 100644 --- a/zq-erp/src/main/java/com/matrix/system/hive/bean/SysVipInfo.java +++ b/zq-erp/src/main/java/com/matrix/system/hive/bean/SysVipInfo.java @@ -190,6 +190,26 @@ private Long companyId; + /** + * 省 + */ + private String province; + + /** + * 市 + */ + private String city; + + /** + * 区 + */ + private String area; + + /** + * 推荐人 + */ + private Long recommendId; + //血型 private String blood; @@ -210,6 +230,38 @@ private SysOrder sysOrder; + 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 Long getRecommendId() { + return recommendId; + } + + public void setRecommendId(Long recommendId) { + this.recommendId = recommendId; + } + public SysOrder getSysOrder() { return sysOrder; } diff --git a/zq-erp/src/main/java/com/matrix/system/hive/dao/SysVipLabelDao.java b/zq-erp/src/main/java/com/matrix/system/hive/dao/SysVipLabelDao.java index cc99bcc..7333440 100644 --- a/zq-erp/src/main/java/com/matrix/system/hive/dao/SysVipLabelDao.java +++ b/zq-erp/src/main/java/com/matrix/system/hive/dao/SysVipLabelDao.java @@ -14,4 +14,6 @@ List<SysVipLabel> selectByVipId(@Param("vipId") Long vipId); List<SysVipLabel> selectByModel(@Param("record") SysVipLabel sysVipLabel); + + int deleteByVipId(@Param("vipId") Long vipId); } 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 51f141b..e21b943 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 @@ -2,7 +2,9 @@ import com.matrix.core.pojo.PaginationVO; import com.matrix.system.app.dto.AddVipDto; +import com.matrix.system.app.dto.ModifyVipDto; import com.matrix.system.app.dto.VipInfoListDto; +import com.matrix.system.app.vo.VipInfoDetailVo; import com.matrix.system.app.vo.VipInfoListVo; import com.matrix.system.hive.bean.SysVipInfo; import com.matrix.system.hive.plugin.util.BaseServices; @@ -190,5 +192,7 @@ int apiAddVip(AddVipDto addVipDto); + int apiModifyVip(ModifyVipDto modifyVipDto); + VipInfoDetailVo findVipInfoDetail(Long id); } \ 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 b3845ce..63e7d10 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 @@ -7,7 +7,9 @@ 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.ModifyVipDto; import com.matrix.system.app.dto.VipInfoListDto; +import com.matrix.system.app.vo.VipInfoDetailVo; import com.matrix.system.app.vo.VipInfoListVo; import com.matrix.system.common.bean.SysUsers; import com.matrix.system.common.tools.DataAuthUtil; @@ -452,10 +454,18 @@ vipInfo.setPhone(addVipDto.getPhone()); vipInfo.setAddr(addVipDto.getAddress()); vipInfo.setRemark(addVipDto.getRemark()); + vipInfo.setBirthday1(addVipDto.getBirthday()); + vipInfo.setRecommendId(addVipDto.getRecommendId()); + + if (StringUtils.isNotBlank(addVipDto.getAreas())) { + String[] areas = addVipDto.getAreas().split(","); + vipInfo.setProvince(areas[0]); + vipInfo.setCity(areas[1]); + vipInfo.setArea(areas[2]); + } 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()); @@ -469,20 +479,89 @@ 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); - } + batchInsertLabel(addVipDto.getLabels(), user.getSuName(), vipInfo.getId()); } //创建用户默认储值卡 addVipDefaultCard(vipInfo.getId()); return i; } + + @Override + public int apiModifyVip(ModifyVipDto modifyVipDto) { + SysUsers user = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY); + + if (serviceUtil.addCheckRepeatTowColumn(TableMapping.SYS_VIP_INFO, "PHONE", modifyVipDto.getPhone(), + "company_id",user.getCompanyId() )) { + throw new GlobleException("手机已被注册!"); + } + + SysVipInfo vipInfo = sysVipInfoDao.selectById(modifyVipDto.getVipId()); + if (vipInfo == null) { + throw new GlobleException("用户不存在"); + } + + if (StringUtils.isNotBlank(modifyVipDto.getAreas())) { + String[] areas = modifyVipDto.getAreas().split(","); + vipInfo.setProvince(areas[0]); + vipInfo.setCity(areas[1]); + vipInfo.setArea(areas[2]); + } + + vipInfo.setVipName(modifyVipDto.getVipName()); + vipInfo.setSex(modifyVipDto.getSex()); + vipInfo.setArrivalWay(modifyVipDto.getArrivalWay()); + vipInfo.setPhone(modifyVipDto.getPhone()); + vipInfo.setAddr(modifyVipDto.getAddress()); + vipInfo.setRemark(modifyVipDto.getRemark()); + vipInfo.setBirthday1(modifyVipDto.getBirthday()); + vipInfo.setRecommendId(modifyVipDto.getRecommendId()); + int i = sysVipInfoDao.update(vipInfo); + + if (CollectionUtils.isNotEmpty(modifyVipDto.getLabels())) { + sysVipLabelDao.deleteByVipId(modifyVipDto.getVipId()); + + batchInsertLabel(modifyVipDto.getLabels(), user.getSuName(), vipInfo.getId()); + } + return i; + } + + private void batchInsertLabel(List<String> labelList, String suName, Long id) { + Set<String> labels = new HashSet<>(labelList); + Iterator<String> iterator = labels.iterator(); + if (iterator.hasNext()) { + SysVipLabel sysVipLabel = new SysVipLabel(); + sysVipLabel.setCreateTime(new Date()); + sysVipLabel.setCreateBy(suName); + sysVipLabel.setLabel(iterator.next()); + sysVipLabel.setVipId(id); + sysVipLabelDao.insert(sysVipLabel); + } + } + + @Override + public VipInfoDetailVo findVipInfoDetail(Long id) { + SysVipInfo sysVipInfo = sysVipInfoDao.selectById(id); + if (sysVipInfo == null) { + throw new GlobleException("用户不存在"); + } + + VipInfoDetailVo vipInfoDetailVo = new VipInfoDetailVo(); + vipInfoDetailVo.setVipName(sysVipInfo.getVipName()); + vipInfoDetailVo.setAddress(sysVipInfo.getAddr()); + vipInfoDetailVo.setPhone(sysVipInfo.getPhone()); + vipInfoDetailVo.setSex(sysVipInfo.getSex()); + vipInfoDetailVo.setArrivalWay(sysVipInfo.getArrivalWay()); + vipInfoDetailVo.setRecommendId(sysVipInfo.getRecommendId()); + vipInfoDetailVo.setId(sysVipInfo.getId()); + vipInfoDetailVo.setProvince(sysVipInfo.getProvince()); + vipInfoDetailVo.setCity(sysVipInfo.getCity()); + vipInfoDetailVo.setArea(sysVipInfo.getArea()); + vipInfoDetailVo.setRemark(sysVipInfo.getRemark()); + vipInfoDetailVo.setBirthday(sysVipInfo.getBirthday1()); + + List<SysVipLabel> labels = sysVipLabelDao.selectByVipId(sysVipInfo.getId()); + vipInfoDetailVo.setLabels(labels); + return vipInfoDetailVo; + } } \ No newline at end of file diff --git a/zq-erp/src/main/resources/mybatis/mapper/hive/SysVipInfoDao.xml b/zq-erp/src/main/resources/mybatis/mapper/hive/SysVipInfoDao.xml index 538d594..ac7c6cf 100644 --- a/zq-erp/src/main/resources/mybatis/mapper/hive/SysVipInfoDao.xml +++ b/zq-erp/src/main/resources/mybatis/mapper/hive/SysVipInfoDao.xml @@ -35,6 +35,9 @@ <result property="disease" column="disease"/> <result property="zjm" column="zjm"/> <result property="companyId" column="company_id"/> + <result property="province" column="province"/> + <result property="city" column="city"/> + <result property="area" column="area"/> <result property="statu" column="statu"/> <result property="birthdayType" column="birthdayType"/> @@ -274,7 +277,11 @@ disease, is_deal, zjm, - company_id + company_id, + province, + city, + area, + recommend_id ) @@ -318,7 +325,11 @@ #{disease}, #{isDeal}, #{zjm}, - #{companyId} + #{companyId}, + #{province}, + #{city}, + #{area}, + #{recommendId} ) </insert> @@ -444,6 +455,18 @@ </if> <if test="isDeal != null "> is_deal = #{isDeal}, + </if> + <if test="recommendId != null "> + recommend_id = #{recommendId}, + </if> + <if test="province != null and province !='' "> + province = #{province}, + </if> + <if test="city != null and city !='' "> + city = #{city}, + </if> + <if test="area != null and area !='' "> + area = #{area}, </if> @@ -937,7 +960,11 @@ a.create_distribution_time, a.birthdayType, a.disease, - a.is_deal + a.is_deal, + a.province, + a.city, + a.area, + a.recommend_id </sql> <sql id="from"> from sys_vip_info a diff --git a/zq-erp/src/main/resources/mybatis/mapper/hive/SysVipLabelDao.xml b/zq-erp/src/main/resources/mybatis/mapper/hive/SysVipLabelDao.xml index aa566df..26606d4 100644 --- a/zq-erp/src/main/resources/mybatis/mapper/hive/SysVipLabelDao.xml +++ b/zq-erp/src/main/resources/mybatis/mapper/hive/SysVipLabelDao.xml @@ -44,4 +44,9 @@ </if> </if> </select> + + <delete id="deleteByVipId"> + delete from sys_vip_label + where vip_id=#{vipId} + </delete> </mapper> \ No newline at end of file -- Gitblit v1.9.1