From 7b9cb4464cf7a6db758214c5681b0ecdf01e3db4 Mon Sep 17 00:00:00 2001
From: 935090232@qq.com <ak473600000>
Date: Wed, 06 Jan 2021 16:22:08 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/api' into api

---
 zq-erp/src/main/java/com/matrix/system/hive/plugin/util/ImageUtil.java             |   33 ++++
 zq-erp/src/main/java/com/matrix/system/app/dto/ModifyVipDto.java                   |   25 +++
 zq-erp/src/main/java/com/matrix/system/hive/service/SysVipInfoService.java         |    2 
 zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysVipInfoServiceImpl.java |    7 +
 zq-erp/src/main/java/com/matrix/system/app/dto/PwdModifyDto.java                   |   38 +++++
 zq-erp/src/main/java/com/matrix/system/app/dto/UploadPhotoDto.java                 |   26 +++
 zq-erp/src/main/java/com/matrix/system/app/dto/AddVipDto.java                      |   23 +++
 zq-erp/src/main/java/com/matrix/system/app/action/ApiCommonAction.java             |   94 +++++++++++++
 zq-erp/src/main/java/com/matrix/system/app/dto/CreateServiceOrderDto.java          |   13 +
 zq-erp/src/main/java/com/matrix/system/app/dto/PwdResetDto.java                    |   51 +++++++
 zq-erp/src/main/java/com/matrix/system/app/action/ApiServiceOrderAction.java       |    9 +
 zq-erp/src/main/java/com/matrix/system/app/vo/VipInfoDetailVo.java                 |   22 +++
 zq-erp/src/main/java/com/matrix/system/app/action/ApiUsersAction.java              |   29 ++++
 zq-erp/src/main/java/com/matrix/system/app/dto/SmsCodeDto.java                     |   26 +++
 zq-erp/src/main/java/com/matrix/system/app/action/ApiVipInfoAction.java            |    4 
 15 files changed, 401 insertions(+), 1 deletions(-)

diff --git a/zq-erp/src/main/java/com/matrix/system/app/action/ApiCommonAction.java b/zq-erp/src/main/java/com/matrix/system/app/action/ApiCommonAction.java
index ec18586..6e8f83a 100644
--- a/zq-erp/src/main/java/com/matrix/system/app/action/ApiCommonAction.java
+++ b/zq-erp/src/main/java/com/matrix/system/app/action/ApiCommonAction.java
@@ -3,24 +3,38 @@
 import com.alibaba.fastjson.JSONObject;
 import com.matrix.component.redis.RedisClient;
 import com.matrix.core.pojo.AjaxResult;
+import com.matrix.core.tools.LogUtil;
+import com.matrix.core.tools.StringUtils;
 import com.matrix.core.tools.UUIDUtil;
 import com.matrix.system.app.authority.AppAuthorityManager;
 import com.matrix.system.app.dto.LoginDto;
+import com.matrix.system.app.dto.PwdResetDto;
+import com.matrix.system.app.dto.SmsCodeDto;
+import com.matrix.system.app.dto.UploadPhotoDto;
 import com.matrix.system.app.vo.UserInfoVo;
 import com.matrix.system.common.authority.DefaultAuthorityManager;
 import com.matrix.system.common.authority.strategy.AccountPasswordLogin;
 import com.matrix.system.common.authority.strategy.LoginStrategy;
 import com.matrix.system.common.bean.SysUsers;
 import com.matrix.system.common.service.SysUsersService;
+import com.matrix.system.common.tools.PasswordUtil;
 import com.matrix.system.hive.bean.SysShopInfo;
+import com.matrix.system.hive.plugin.util.CollectionUtils;
+import com.matrix.system.hive.plugin.util.ImageUtil;
 import com.matrix.system.hive.service.SysShopInfoService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiResponse;
 import io.swagger.annotations.ApiResponses;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
+
+import java.io.File;
+import java.io.UnsupportedEncodingException;
+import java.security.NoSuchAlgorithmException;
+import java.util.List;
 
 /**
  * @author wzy
@@ -42,6 +56,11 @@
 
     @Autowired
     private RedisClient redisClient;
+
+    @Value("${file_storage_path}")
+    private String fileStoragePath;
+    @Value("${static_resource_url}")
+    private String nginxUrl;
 
     @ApiOperation(value = "登陆接口", notes = "手机端登陆接口")
     @ApiResponses({
@@ -80,4 +99,79 @@
         return result;
     }
 
+    @ApiOperation(value = "图片上传接口", notes = "图片上传接口")
+    @PostMapping(value = "/uploadPhotoBase64")
+    public AjaxResult uploadPhotoBase64(@RequestBody @Validated UploadPhotoDto uploadPhotoDto) {
+        // 文件保存目录路径
+        String savePath = fileStoragePath;
+        // 文件保存目录URL
+        String saveUrl = nginxUrl;
+
+        // 保存和访问路径检查
+        if (StringUtils.isBlank(saveUrl) || StringUtils.isBlank(savePath)) {
+            return AjaxResult.buildFailInstance("文件上传失败错误代码:001");
+        }
+
+        // 检查目录
+        File uploadDir = new File(savePath);
+        if (!uploadDir.isDirectory()) {
+            uploadDir.mkdir();
+        }
+
+        String fileName = ImageUtil.base64ToFile(uploadPhotoDto.getBase64(), savePath, UUIDUtil.getRandomID() + ".png");
+        LogUtil.info("fileName : {}", fileName);
+
+        AjaxResult ajaxResult = AjaxResult.buildSuccessInstance("上传成功");
+        ajaxResult.putInMap("file", fileName);
+        return ajaxResult;
+    }
+
+    @ApiOperation(value = "短信验证码发送", notes = "短信验证码发送")
+    @PostMapping(value = "/sendSmsCode")
+    public AjaxResult sendSmsCode(@RequestBody @Validated SmsCodeDto smsCodeDto) {
+        SysUsers user = new SysUsers();
+        user.setSuTel(smsCodeDto.getTelphone());
+        List<SysUsers> users = sysUsersService.findByModel(user);
+        if (CollectionUtils.isEmpty(users)) {
+            return AjaxResult.buildFailInstance("该手机号不存在");
+        }
+
+        String codeExist = redisClient.getCachedValue(smsCodeDto.getTelphone());
+        if (StringUtils.isNotBlank(codeExist)) {
+            return AjaxResult.buildFailInstance("请勿重复发送验证码");
+        }
+        redisClient.saveValue(smsCodeDto.getTelphone(), "123456", 120);
+        return AjaxResult.buildSuccessInstance("发送成功");
+    }
+
+    @ApiOperation(value = "重置登陆密码", notes = "重置登陆密码")
+    @PostMapping(value = "/resetLoginPwd")
+    public AjaxResult resetLoginPwd(@RequestBody @Validated PwdResetDto pwdResetDto) throws UnsupportedEncodingException, NoSuchAlgorithmException {
+        SysUsers user = new SysUsers();
+        user.setSuTel(pwdResetDto.getTelphone());
+        List<SysUsers> users = sysUsersService.findByModel(user);
+        if (CollectionUtils.isEmpty(users)) {
+            return AjaxResult.buildFailInstance("该手机号不存在");
+        }
+
+        String code = redisClient.getCachedValue(pwdResetDto.getTelphone());
+        if (StringUtils.isBlank(code)) {
+            return AjaxResult.buildFailInstance("验证码已失效,请重新发送");
+        }
+
+        if (!code.equals(pwdResetDto.getCode())) {
+            return AjaxResult.buildFailInstance("验证码错误");
+        }
+
+        user = users.get(0);
+        user.setSuPassword(pwdResetDto.getNewPwd());
+        String pwd = PasswordUtil.getEncrypUserPwd(user);
+
+        int i = sysUsersService.updateUserPassword(user.getSuId(), pwd);
+        if (i > 0) {
+            redisClient.removeObject(pwdResetDto.getTelphone());
+            return AjaxResult.buildSuccessInstance("修改成功");
+        }
+        return AjaxResult.buildFailInstance("修改失败");
+    }
 }
diff --git a/zq-erp/src/main/java/com/matrix/system/app/action/ApiServiceOrderAction.java b/zq-erp/src/main/java/com/matrix/system/app/action/ApiServiceOrderAction.java
index 83a7b43..e0c59eb 100644
--- a/zq-erp/src/main/java/com/matrix/system/app/action/ApiServiceOrderAction.java
+++ b/zq-erp/src/main/java/com/matrix/system/app/action/ApiServiceOrderAction.java
@@ -6,6 +6,7 @@
 import com.matrix.core.pojo.PaginationVO;
 import com.matrix.core.pojo.VerifyResult;
 import com.matrix.core.tools.DateUtil;
+import com.matrix.core.tools.StringUtils;
 import com.matrix.core.tools.WebUtil;
 import com.matrix.system.app.dto.CreateServiceOrderDto;
 import com.matrix.system.app.dto.ServiceOrderListDto;
@@ -135,6 +136,14 @@
         if (CollectionUtils.isEmpty(serviceOrderDto.getProjItems())) {
             throw new GlobleException("请选择服务");
         }
+        SysVipInfo vipInfo = sysVipInfoService.findById(serviceOrderDto.getVipId());
+        if (StringUtils.isBlank(vipInfo.getPassWord())) {
+            return AjaxResult.buildFailInstance("未设置资金密码");
+        }
+
+        if (!vipInfo.getPassWord().equals(serviceOrderDto.getPassword())) {
+            return AjaxResult.buildSuccessInstance("资金密码错误");
+        }
 
         SysProjServices sysProjServices = new SysProjServices();
         sysProjServices.setVipId(serviceOrderDto.getVipId());
diff --git a/zq-erp/src/main/java/com/matrix/system/app/action/ApiUsersAction.java b/zq-erp/src/main/java/com/matrix/system/app/action/ApiUsersAction.java
index 5858e80..18e0053 100644
--- a/zq-erp/src/main/java/com/matrix/system/app/action/ApiUsersAction.java
+++ b/zq-erp/src/main/java/com/matrix/system/app/action/ApiUsersAction.java
@@ -6,6 +6,7 @@
 import com.matrix.core.tools.DateUtil;
 import com.matrix.core.tools.WebUtil;
 import com.matrix.system.app.dto.BeauticianDto;
+import com.matrix.system.app.dto.PwdModifyDto;
 import com.matrix.system.app.dto.UsersQueryDto;
 import com.matrix.system.app.mapper.SysBeauticianStateMapper;
 import com.matrix.system.app.mapper.SysUsersMapper;
@@ -15,6 +16,8 @@
 import com.matrix.system.common.bean.SysUsers;
 import com.matrix.system.common.service.SysUsersService;
 import com.matrix.system.common.tools.DataAuthUtil;
+import com.matrix.system.common.tools.PasswordUtil;
+import com.matrix.system.hive.action.BaseController;
 import com.matrix.system.hive.bean.SysBeauticianState;
 import com.matrix.system.hive.bean.SysWorkBeatuistaff;
 import com.matrix.system.hive.service.AchieveNewService;
@@ -29,6 +32,8 @@
 import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
+import java.io.UnsupportedEncodingException;
+import java.security.NoSuchAlgorithmException;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -39,7 +44,7 @@
 @Api(value = "ApiUsersAction", tags = "用户中心接口类")
 @RestController
 @RequestMapping(value = "/api/user")
-public class ApiUsersAction {
+public class ApiUsersAction extends BaseController {
 
     @Autowired
     private AchieveNewService achieveNewService;
@@ -127,4 +132,26 @@
         return AjaxResult.buildSuccessInstance(dataList);
     }
 
+    @ApiOperation(value = "修改密码", notes = "修改密码")
+    @PostMapping(value = "/modifyPwd")
+    public AjaxResult modifyPwd(@RequestBody @Validated PwdModifyDto pwdModifyDto) throws UnsupportedEncodingException, NoSuchAlgorithmException {
+        SysUsers me = getMe();
+        SysUsers user = sysUsersService.findById(me.getSuId());
+
+        SysUsers pwdUser = new SysUsers();
+        pwdUser.setSuPassword(pwdModifyDto.getOldPwd());
+        pwdUser.setSuRegisterTime(user.getSuRegisterTime());
+        String pwd = PasswordUtil.getEncrypUserPwd(pwdUser);
+        if (!pwd.equals(user.getSuPassword())) {
+            return AjaxResult.buildFailInstance("老密码错误");
+        }
+
+        int i = sysUsersService.updateUserPassword(user.getSuId(), pwd);
+        if (i > 0) {
+            return AjaxResult.buildSuccessInstance("修改成功");
+        }
+        return AjaxResult.buildFailInstance("修改失败");
+
+    }
+
 }
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 0a52155..97eaf14 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,6 +2,7 @@
 
 import com.matrix.core.constance.MatrixConstance;
 import com.matrix.core.pojo.AjaxResult;
+import com.matrix.core.tools.EncrypUtil;
 import com.matrix.core.tools.StringUtils;
 import com.matrix.core.tools.WebUtil;
 import com.matrix.system.app.dto.AddVipDto;
@@ -15,6 +16,7 @@
 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.common.tools.PasswordUtil;
 import com.matrix.system.hive.action.BaseController;
 import com.matrix.system.hive.bean.*;
 import com.matrix.system.hive.dao.MoneyCardUseDao;
@@ -32,6 +34,8 @@
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 
+import java.io.UnsupportedEncodingException;
+import java.security.NoSuchAlgorithmException;
 import java.util.List;
 
 /**
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
index 693daae..ade6a97 100644
--- 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
@@ -17,6 +17,8 @@
  **/
 @ApiModel(value = "AddVipDto", description = "添加会员接收参数类")
 public class AddVipDto {
+    @ApiModelProperty(value = "头像")
+    private String photo;
 
     @Length(max = 10, min = 1)
     @NotBlank(message = "会员编号不能为空")
@@ -39,6 +41,11 @@
     @ApiModelProperty(value = "生日")
     @JsonFormat(pattern = DateUtil.DATE_FORMAT_DD, timezone = "GMT+8")
     private Date birthday;
+
+    @Length(min = 6, max = 6)
+    @NotBlank(message = "参数错误")
+    @ApiModelProperty(value = "资金密码", example = "123456")
+    private String password;
 
     @ApiModelProperty(value = "省市区", example = "湖南省,长沙市,岳麓区")
     private String areas;
@@ -145,4 +152,20 @@
     public void setLabels(List<String> labels) {
         this.labels = labels;
     }
+
+    public String getPassword() {
+        return password;
+    }
+
+    public void setPassword(String password) {
+        this.password = password;
+    }
+
+    public String getPhoto() {
+        return photo;
+    }
+
+    public void setPhoto(String photo) {
+        this.photo = photo;
+    }
 }
diff --git a/zq-erp/src/main/java/com/matrix/system/app/dto/CreateServiceOrderDto.java b/zq-erp/src/main/java/com/matrix/system/app/dto/CreateServiceOrderDto.java
index dadc947..d569cea 100644
--- a/zq-erp/src/main/java/com/matrix/system/app/dto/CreateServiceOrderDto.java
+++ b/zq-erp/src/main/java/com/matrix/system/app/dto/CreateServiceOrderDto.java
@@ -5,6 +5,7 @@
 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;
@@ -38,6 +39,18 @@
     @ApiModelProperty(value = "备注")
     private String remark;
 
+    @NotBlank(message = "参数错误")
+    @ApiModelProperty(value = "资金密码")
+    private String password;
+
+    public String getPassword() {
+        return password;
+    }
+
+    public void setPassword(String password) {
+        this.password = password;
+    }
+
     public Long getVipId() {
         return vipId;
     }
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
index d914a23..3f04e94 100644
--- 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
@@ -4,6 +4,7 @@
 import com.matrix.core.tools.DateUtil;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
+import org.hibernate.validator.constraints.Length;
 
 import javax.validation.constraints.NotBlank;
 import javax.validation.constraints.NotNull;
@@ -16,6 +17,9 @@
  **/
 @ApiModel(value = "ModifyVipDto", description = "修改会员接收参数类")
 public class ModifyVipDto {
+
+    @ApiModelProperty(value = "头像")
+    private String photo;
 
     @NotNull(message = "参数错误")
     @ApiModelProperty(value = "会员ID")
@@ -41,6 +45,11 @@
     @ApiModelProperty(value = "生日")
     @JsonFormat(pattern = DateUtil.DATE_FORMAT_DD, timezone = "GMT+8")
     private Date birthday;
+
+    @Length(min = 6, max = 6)
+    @NotBlank(message = "参数错误")
+    @ApiModelProperty(value = "资金密码", example = "123456")
+    private String password;
 
     @ApiModelProperty(value = "省市区", example = "湖南省,长沙市,岳麓区")
     private String areas;
@@ -155,4 +164,20 @@
     public void setLabels(List<String> labels) {
         this.labels = labels;
     }
+
+    public String getPassword() {
+        return password;
+    }
+
+    public void setPassword(String password) {
+        this.password = password;
+    }
+
+    public String getPhoto() {
+        return photo;
+    }
+
+    public void setPhoto(String photo) {
+        this.photo = photo;
+    }
 }
diff --git a/zq-erp/src/main/java/com/matrix/system/app/dto/PwdModifyDto.java b/zq-erp/src/main/java/com/matrix/system/app/dto/PwdModifyDto.java
new file mode 100644
index 0000000..476a22a
--- /dev/null
+++ b/zq-erp/src/main/java/com/matrix/system/app/dto/PwdModifyDto.java
@@ -0,0 +1,38 @@
+package com.matrix.system.app.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.constraints.NotBlank;
+
+/**
+ * @author wzy
+ * @date 2021-01-06
+ **/
+@ApiModel(value = "PwdModifyDto", description = "修改密码接口参数接收类")
+public class PwdModifyDto {
+
+    @NotBlank(message = "参数错误")
+    @ApiModelProperty(value = "老密码", example = "123456")
+    private String oldPwd;
+
+    @NotBlank(message = "参数错误")
+    @ApiModelProperty(value = "新密码", example = "123456")
+    private String newPwd;
+
+    public String getOldPwd() {
+        return oldPwd;
+    }
+
+    public void setOldPwd(String oldPwd) {
+        this.oldPwd = oldPwd;
+    }
+
+    public String getNewPwd() {
+        return newPwd;
+    }
+
+    public void setNewPwd(String newPwd) {
+        this.newPwd = newPwd;
+    }
+}
diff --git a/zq-erp/src/main/java/com/matrix/system/app/dto/PwdResetDto.java b/zq-erp/src/main/java/com/matrix/system/app/dto/PwdResetDto.java
new file mode 100644
index 0000000..a102596
--- /dev/null
+++ b/zq-erp/src/main/java/com/matrix/system/app/dto/PwdResetDto.java
@@ -0,0 +1,51 @@
+package com.matrix.system.app.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.constraints.NotBlank;
+
+/**
+ * @author wzy
+ * @date 2021-01-06
+ **/
+@ApiModel(value = "PwdResetDto", description = "密码重置接收类")
+public class PwdResetDto {
+
+    @NotBlank(message = "参数错误")
+    @ApiModelProperty(value = "手机号", example = "11")
+    private String telphone;
+
+    @NotBlank(message = "参数错误")
+    @ApiModelProperty(value = "验证码", example = "123456")
+    private String code;
+
+    @NotBlank(message = "参数错误")
+    @ApiModelProperty(value = "新密码", example = "123456")
+    private String newPwd;
+
+
+    public String getCode() {
+        return code;
+    }
+
+    public void setCode(String code) {
+        this.code = code;
+    }
+
+    public String getNewPwd() {
+        return newPwd;
+    }
+
+    public void setNewPwd(String newPwd) {
+        this.newPwd = newPwd;
+    }
+
+    public String getTelphone() {
+        return telphone;
+    }
+
+    public void setTelphone(String telphone) {
+        this.telphone = telphone;
+    }
+}
diff --git a/zq-erp/src/main/java/com/matrix/system/app/dto/SmsCodeDto.java b/zq-erp/src/main/java/com/matrix/system/app/dto/SmsCodeDto.java
new file mode 100644
index 0000000..8c18339
--- /dev/null
+++ b/zq-erp/src/main/java/com/matrix/system/app/dto/SmsCodeDto.java
@@ -0,0 +1,26 @@
+package com.matrix.system.app.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.constraints.NotBlank;
+
+/**
+ * @author wzy
+ * @date 2021-01-06
+ **/
+@ApiModel(value = "SmsCodeDto", description = "短信发送接收参数类")
+public class SmsCodeDto {
+
+    @NotBlank(message = "参数错误")
+    @ApiModelProperty(value = "手机号")
+    private String telphone;
+
+    public String getTelphone() {
+        return telphone;
+    }
+
+    public void setTelphone(String telphone) {
+        this.telphone = telphone;
+    }
+}
diff --git a/zq-erp/src/main/java/com/matrix/system/app/dto/UploadPhotoDto.java b/zq-erp/src/main/java/com/matrix/system/app/dto/UploadPhotoDto.java
new file mode 100644
index 0000000..13b7e85
--- /dev/null
+++ b/zq-erp/src/main/java/com/matrix/system/app/dto/UploadPhotoDto.java
@@ -0,0 +1,26 @@
+package com.matrix.system.app.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.constraints.NotBlank;
+
+/**
+ * @author wzy
+ * @date 2021-01-06
+ **/
+@ApiModel(value = "UploadPhotoDto", description = "图片上传接口接收参数类")
+public class UploadPhotoDto {
+
+    @NotBlank(message = "参数错误")
+    @ApiModelProperty(value = "图片base64字符串")
+    private String base64;
+
+    public String getBase64() {
+        return base64;
+    }
+
+    public void setBase64(String base64) {
+        this.base64 = base64;
+    }
+}
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 876f124..ea25f93 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
@@ -16,6 +16,12 @@
 @ApiModel(value = "VipInfoDetailVo", description = "客户详细信息接口返回类")
 public class VipInfoDetailVo {
 
+    @ApiModelProperty(value = "头像")
+    private String photo;
+
+    @ApiModelProperty(value = "资金密码")
+    private String password;
+
     @ApiModelProperty(value = "会员ID")
     private Long id;
 
@@ -170,4 +176,20 @@
     public void setRemark(String remark) {
         this.remark = remark;
     }
+
+    public String getPhoto() {
+        return photo;
+    }
+
+    public void setPhoto(String photo) {
+        this.photo = photo;
+    }
+
+    public String getPassword() {
+        return password;
+    }
+
+    public void setPassword(String password) {
+        this.password = password;
+    }
 }
diff --git a/zq-erp/src/main/java/com/matrix/system/hive/plugin/util/ImageUtil.java b/zq-erp/src/main/java/com/matrix/system/hive/plugin/util/ImageUtil.java
index 2cd53bb..ed3c363 100644
--- a/zq-erp/src/main/java/com/matrix/system/hive/plugin/util/ImageUtil.java
+++ b/zq-erp/src/main/java/com/matrix/system/hive/plugin/util/ImageUtil.java
@@ -1,10 +1,16 @@
 package com.matrix.system.hive.plugin.util;
 
+import com.matrix.core.tools.DateUtil;
+import sun.misc.BASE64Decoder;
+
 import java.awt.Image;
 import java.awt.image.BufferedImage;
+import java.io.BufferedOutputStream;
 import java.io.File;
 import java.io.FileOutputStream;
 import java.io.IOException;
+import java.util.Calendar;
+import java.util.Date;
 
 import javax.imageio.ImageIO;
 
@@ -56,6 +62,33 @@
 		}
 	}
 
+
+	public static String base64ToFile(String base64Str, String savePath, String fileName) {
+		String fileDir = DateUtil.dateToString(new Date(), DateUtil.DATE_FORMAT_NO_SPLITE_DD);
+
+		File dir = new File(savePath + fileDir);
+		if (!dir.isDirectory()) {
+			dir.mkdir();
+		}
+
+		BufferedOutputStream bos = null;
+		FileOutputStream fos = null;
+		File file = null;
+		String filePathAndName = savePath + fileDir + File.separator + fileName;
+		BASE64Decoder decoder = new BASE64Decoder();
+		byte[] bfile = new byte[0];
+		try {
+			bfile = decoder.decodeBuffer(base64Str);
+			file = new File(filePathAndName);
+			fos = new FileOutputStream(file);
+			bos = new BufferedOutputStream(fos);
+			bos.write(bfile);
+		} catch (IOException e) {
+			e.printStackTrace();
+		}
+
+		return filePathAndName;
+	}
 	
 
 	
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 e21b943..5d024d7 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
@@ -12,6 +12,8 @@
 
 import java.io.File;
 import java.io.IOException;
+import java.io.UnsupportedEncodingException;
+import java.security.NoSuchAlgorithmException;
 import java.util.List;
 
 /**
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 d75f8f2..b9db73c 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
@@ -13,6 +13,7 @@
 import com.matrix.system.app.vo.VipInfoListVo;
 import com.matrix.system.common.bean.SysUsers;
 import com.matrix.system.common.tools.DataAuthUtil;
+import com.matrix.system.common.tools.PasswordUtil;
 import com.matrix.system.common.tools.ServiceUtil;
 import com.matrix.system.constance.Dictionary;
 import com.matrix.system.constance.TableMapping;
@@ -447,6 +448,7 @@
 		}
 
 		SysVipInfo vipInfo = new SysVipInfo();
+		vipInfo.setPhoto(addVipDto.getPhoto());
 		vipInfo.setVipName(addVipDto.getVipName());
 		vipInfo.setVipNo(addVipDto.getVipNo());
 		vipInfo.setSex(addVipDto.getSex());
@@ -455,6 +457,7 @@
 		vipInfo.setAddr(addVipDto.getAddress());
 		vipInfo.setRemark(addVipDto.getRemark());
 		vipInfo.setBirthday1(addVipDto.getBirthday());
+		vipInfo.setPassWord(addVipDto.getPassword());
 		vipInfo.setRecommendId(addVipDto.getRecommendId());
 
 		if (StringUtils.isNotBlank(addVipDto.getAreas())) {
@@ -523,8 +526,10 @@
 		vipInfo.setPhone(modifyVipDto.getPhone());
 		vipInfo.setAddr(modifyVipDto.getAddress());
 		vipInfo.setRemark(modifyVipDto.getRemark());
+		vipInfo.setPassWord(modifyVipDto.getPassword());
 		vipInfo.setBirthday1(modifyVipDto.getBirthday());
 		vipInfo.setRecommendId(modifyVipDto.getRecommendId());
+		vipInfo.setPhoto(modifyVipDto.getPhoto());
 		int i = sysVipInfoDao.update(vipInfo);
 
 		if (CollectionUtils.isNotEmpty(modifyVipDto.getLabels())) {
@@ -568,6 +573,8 @@
 		vipInfoDetailVo.setArea(sysVipInfo.getArea());
 		vipInfoDetailVo.setRemark(sysVipInfo.getRemark());
 		vipInfoDetailVo.setBirthday(sysVipInfo.getBirthday1());
+		vipInfoDetailVo.setPassword(sysVipInfo.getPassWord());
+		vipInfoDetailVo.setPhoto(sysVipInfo.getPhoto());
 
 		List<SysVipLabel> labels = sysVipLabelDao.selectByVipId(sysVipInfo.getId());
 		vipInfoDetailVo.setLabels(labels);

--
Gitblit v1.9.1