Jelajahi Sumber

8.16 规范一二级市场的交易流程,完善二级市场收购商认证流程代码

Mechrevo 1 tahun lalu
induk
melakukan
8b18c5c7cc

+ 4 - 4
sp-core/sp-api/src/main/java/com/pj/api/dto/DriverDto.java

@@ -164,7 +164,7 @@ public class DriverDto {
     /**
      * 贸易区域id
      */
-    private Integer tradeAreaId;
+    private Long tradeAreaId;
 
     /**
      * 贸易区域名称
@@ -390,11 +390,11 @@ public class DriverDto {
         this.deleteStatus = deleteStatus;
     }
 
-    public Integer getTradeAreaId() {
+    public Long getTradeAreaId() {
         return tradeAreaId;
     }
 
-    public void setTradeAreaId(Integer tradeAreaId) {
+    public void setTradeAreaId(Long tradeAreaId) {
         this.tradeAreaId = tradeAreaId;
     }
 
@@ -406,7 +406,7 @@ public class DriverDto {
         this.tradeAreaName = tradeAreaName;
     }
 
-    public DriverDto(String name, Integer age, Integer sex, String phone, String address, String bankCode, String bankName, String idCard, String idCardImg, String drivingLicenseId, String drivingLicenseImg, String vehicleDrivingId, String vehicleDrivingImg, String vehicleImg, Date registerTime, Integer isLock, String nopassReason, Integer auditStatus, String auditBy, Date auditTime, String createBy, String createName, Date createTime, String updateBy, String updateName, Date updateTime, Integer deleteStatus, Integer tradeAreaId, String tradeAreaName) {
+    public DriverDto(String name, Integer age, Integer sex, String phone, String address, String bankCode, String bankName, String idCard, String idCardImg, String drivingLicenseId, String drivingLicenseImg, String vehicleDrivingId, String vehicleDrivingImg, String vehicleImg, Date registerTime, Integer isLock, String nopassReason, Integer auditStatus, String auditBy, Date auditTime, String createBy, String createName, Date createTime, String updateBy, String updateName, Date updateTime, Integer deleteStatus, Long tradeAreaId, String tradeAreaName) {
 
         this.name = name;
         this.age = age;

+ 60 - 0
sp-core/sp-api/src/main/java/com/pj/api/dto/EnterpriseDto.java

@@ -24,6 +24,66 @@ public class EnterpriseDto {
      * 性别[1=男,2=女]
      */
     private Integer sex;
+    /**
+     *
+     */
+    private Long tradeAreaId;
+
+    /**
+     *
+     */
+    private String tradeAreaName;
+
+    public Long getTradeAreaId() {
+        return tradeAreaId;
+    }
+
+    public void setTradeAreaId(Long tradeAreaId) {
+        this.tradeAreaId = tradeAreaId;
+    }
+
+    public EnterpriseDto(String name, Integer age, Integer sex, Long tradeAreaId, String tradeAreaName, String nationality, String type, String legalPerson, String idCard, String contact, String businessLicense, Long shopId, String shopName, String bankNo, String bankName, String bankAccount, String dutyParagraph, String addressIds, String address, String agreement, int judgeStatus, String judgeContent, Date judgeTime, Date registerTime, Date createTime, String createBy, String createName, Date updateTime, String updateBy, String updateName, Integer deleteStatus, Integer isLock) {
+        this.name = name;
+        this.age = age;
+        this.sex = sex;
+        this.tradeAreaId = tradeAreaId;
+        this.tradeAreaName = tradeAreaName;
+        this.nationality = nationality;
+        this.type = type;
+        this.legalPerson = legalPerson;
+        this.idCard = idCard;
+        this.contact = contact;
+        this.businessLicense = businessLicense;
+        this.shopId = shopId;
+        this.shopName = shopName;
+        this.bankNo = bankNo;
+        this.bankName = bankName;
+        this.bankAccount = bankAccount;
+        this.dutyParagraph = dutyParagraph;
+        this.addressIds = addressIds;
+        this.address = address;
+        this.agreement = agreement;
+        this.judgeStatus = judgeStatus;
+        this.judgeContent = judgeContent;
+        this.judgeTime = judgeTime;
+        this.registerTime = registerTime;
+        this.createTime = createTime;
+        this.createBy = createBy;
+        this.createName = createName;
+        this.updateTime = updateTime;
+        this.updateBy = updateBy;
+        this.updateName = updateName;
+        this.deleteStatus = deleteStatus;
+        this.isLock = isLock;
+    }
+
+    public String getTradeAreaName() {
+        return tradeAreaName;
+    }
+
+    public void setTradeAreaName(String tradeAreaName) {
+        this.tradeAreaName = tradeAreaName;
+    }
 
     public EnterpriseDto(String name, Integer age, Integer sex, String nationality, String type, String legalPerson, String idCard, String contact, String businessLicense, Long shopId, String shopName, String bankNo, String bankName, String bankAccount, String dutyParagraph, String addressIds, String address, String agreement, int judgeStatus, String judgeContent, Date judgeTime, Date registerTime, Date createTime, String createBy, String createName, Date updateTime, String updateBy, String updateName, Integer deleteStatus, Integer isLock) {
         this.name = name;

+ 24 - 0
sp-core/sp-base/src/main/java/com/pj/enummj/IsOrders.java

@@ -0,0 +1,24 @@
+package com.pj.enummj;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+/**
+ * @Author Mechrevo
+ * @Date 2023 07 26 10 26
+ **/
+@Getter
+@AllArgsConstructor
+public enum IsOrders {
+
+    IS_ORDERS_ONE(1,"已被下单"),
+    IS_ORDERS_ZERO(0,"未被下单");
+
+    private Integer code;
+
+    private String msg;
+
+
+
+
+}

+ 7 - 0
sp-service/level-one-server/src/main/java/com/pj/tb_goods_transit/TbGoodsTransitService.java

@@ -121,6 +121,12 @@ public class TbGoodsTransitService extends ServiceImpl<TbGoodsTransitMapper, TbG
 
 	/** 删 */
 	void delete(Long id){
+		//防止接单时被外籍商户删除上架的商品
+		TbGoodsTransit goodsTransit = tbGoodsTransitMapper.selectById(id);
+		if(goodsTransit == null)throw new SecurityException("商品信息异常!");
+		//判断商品状态
+		if(goodsTransit.getIsOrders().equals(IsOrders.IS_ORDERS_ONE.getCode()))
+			throw new ServiceException("您的商品[ " + goodsTransit.getGoodsName() + " ] 已被下单,请先处理下单请求再来进行删除。");
 		removeById(id);
 	}
 
@@ -303,6 +309,7 @@ public class TbGoodsTransitService extends ServiceImpl<TbGoodsTransitMapper, TbG
 		TbGoodsTransit tbGoodsTransit = tbGoodsTransitMapper.selectById(goodsTransitId);
 		if(tbGoodsTransit == null || tbGoodsTransit.getId() == null)
 			throw new RuntimeException("当前商品信息已失效!");
+		if(tbGoodsTransit.getGoodsStatus() == GoodsStatus.GOODS_STATUS_OFF.getCode())throw new ServiceException("该商品已下架,无法进行购买!");
 		//检查是否属于海关允许销售商品
 		Long goodsId = tbGoodsTransit.getGoodsId();
 		TbGoods tbGoods = tbGoodsMapper.selectById(goodsId);

+ 3 - 1
sp-service/level-one-server/src/main/java/com/pj/tb_order/MethodOrderService.java

@@ -117,6 +117,8 @@ public class MethodOrderService {
         orderVo.setConcat(enterprise.getContact());
         //获取过审商品名称 计价单位 净重 毛重 商品发布时间
         TbGoodsTransit goodsTransit = tbGoodsTransitMapper.selectById(tbOrder.getGoodsId());
+        if(goodsTransit == null)
+            throw new ServiceException("过审商品信息异常!");
         orderVo.setGoodsTransitName(goodsTransit.getGoodsName());
         orderVo.setGoodsUnit(goodsTransit.getGoodsUnits());
         orderVo.setNetWeight(goodsTransit.getNetWeight());
@@ -129,7 +131,7 @@ public class MethodOrderService {
         //订单创建时间
         orderVo.setOrderCreateTime(tbOrder.getCreateTime());
         //购买的互市组名称
-        orderVo.setGroupName(tbGroupMapper.selectById(peopleList.get(0).getGroupId()).getName());
+        orderVo.setGroupName(tbGroupMapper.selectById(tbOrder.getGroupId()).getName());
         //商户确认时间
         orderVo.setEnterpriseConfirmTime(tbOrder.getCreateTime());
         //todo: orderVo进境时间

+ 11 - 1
sp-service/level-two-server/src/main/java/com/pj/tb_goods_demand/AppTbGoodsDemandController.java

@@ -1,7 +1,10 @@
 package com.pj.tb_goods_demand;
 
+import com.pj.common.core.exception.ServiceException;
 import com.pj.enummj.DeleteStatus;
+import com.pj.enummj.IsOrders;
 import com.pj.project4sp.SP;
+import com.pj.tb_demand_quotation.TbDemandQuotationMapper;
 import com.pj.tb_goods_demand.vo.GoodsDemandVo;
 import com.pj.utils.sg.AjaxJson;
 import com.pj.utils.so.SoMap;
@@ -29,6 +32,7 @@ public class AppTbGoodsDemandController {
     @Autowired
     TbGoodsDemandService tbGoodsDemandService;
 
+
     /**
      * 二级市场
      */
@@ -56,6 +60,12 @@ public class AppTbGoodsDemandController {
      */
     @PostMapping("changeState")
     public AjaxJson changeState(TbGoodsDemand dto) {
+        //取消发布前检查需求是否已被报价
+        TbGoodsDemand goodsDemand = tbGoodsDemandService.getById(dto.getId());
+        if(goodsDemand == null)throw new ServiceException("需求状态异常!");
+        //判断是否已被报价
+        if(goodsDemand.getIsOrders().equals(IsOrders.IS_ORDERS_ONE.getCode()))
+            throw new ServiceException("您的需求采购[ " + goodsDemand.getGoodsName() + " ]已被报价,请处理报价再进行取消发布。");
         TbGoodsDemand t = new TbGoodsDemand();
         t.setId(dto.getId());
         t.setIsRelease(dto.getIsRelease());
@@ -63,7 +73,7 @@ public class AppTbGoodsDemandController {
     }
 
     /**
-     * 删
+     * 二级市场收购商除需求 -- 单个
      */
     @RequestMapping("delete")
     public AjaxJson delete(Long id) {

+ 8 - 0
sp-service/level-two-server/src/main/java/com/pj/tb_goods_demand/TbGoodsDemandService.java

@@ -10,6 +10,7 @@ import com.pj.common.core.exception.ServiceException;
 import com.pj.current.dto.APPLoginUserInfo;
 import com.pj.current.satoken.StpAPPUserUtil;
 import com.pj.enummj.DeleteStatus;
+import com.pj.enummj.IsOrders;
 import com.pj.enummj.OrderStatus;
 import com.pj.enummj.ReleaseStatus;
 import com.pj.tb_demand_quotation.TbDemandQuotation;
@@ -77,6 +78,13 @@ public class TbGoodsDemandService extends ServiceImpl<TbGoodsDemandMapper, TbGoo
      * 删
      */
     void delete(Long id) {
+        //防止在被报价的情况下删除需求
+        TbGoodsDemand tbGoodsDemand = tbGoodsDemandMapper.selectById(id);
+        if(tbGoodsDemand == null)
+            throw new ServiceException("需求状态异常!");
+        //执行
+        if(tbGoodsDemand.getIsOrders().equals(IsOrders.IS_ORDERS_ONE.getCode()))
+            throw new ServiceException("您的需求[ " + tbGoodsDemand.getGoodsName() + " ]已被报价,请先处理报价再来进行删除。 ");
         removeById(id);
     }
 

+ 57 - 0
sp-service/level-two-server/src/main/java/com/pj/tb_purchaser/MethodPurchaserService.java

@@ -1,5 +1,9 @@
 package com.pj.tb_purchaser;
 
+import com.pj.enummj.DeleteStatus;
+import com.pj.enummj.IsLock;
+import com.pj.enummj.JudgeStatus;
+import com.pj.tb_purchaser.param.PurchaserParam;
 import org.apache.poi.hssf.usermodel.HSSFCell;
 import org.apache.poi.hssf.usermodel.HSSFRow;
 import org.apache.poi.hssf.usermodel.HSSFSheet;
@@ -9,7 +13,11 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
 import java.util.ArrayList;
+import java.util.Calendar;
+import java.util.Date;
 import java.util.List;
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Executors;
@@ -25,6 +33,55 @@ public class MethodPurchaserService {
     @Autowired
     private TbPurchaserService tbPurchaserService;
 
+
+    public TbPurchaser setPurchaserProperties(PurchaserParam purchaser) throws ParseException {
+        //开始保存收购商信息
+        //注册/认证时间
+        TbPurchaser tbPurchaser = new TbPurchaser();
+        //审核状态
+        tbPurchaser.setJudgeStatus(JudgeStatus.JUDGE_STATUS_ZERO.getCode()); // 待审核
+        //默认未被锁
+        tbPurchaser.setIsLock(IsLock.IS_LOCK_ON.getCode());
+        //注册时间
+        tbPurchaser.setRegisterTime(new Date());
+        //创建时间
+        tbPurchaser.setCreateTime(new Date());
+        //删除状态:启用
+        tbPurchaser.setDeleteStatus(DeleteStatus.DELETE_STATUS_ON.getCode());
+        //地址
+        tbPurchaser.setAddress(purchaser.getAddress());
+        //计算年龄
+        // 获取当前日期
+        Calendar calendar = Calendar.getInstance();
+        int currentYear = calendar.get(Calendar.YEAR);
+        // 提取身份证号中的出生日期
+        String idNumber = purchaser.getCorporateIdCard();
+        String birthDateStr = idNumber.substring(6, 14);
+        // 将出生日期字符串转换为Date类型
+        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMdd");
+        Date birthDate = dateFormat.parse(birthDateStr);
+        // 计算年龄
+        calendar.setTime(birthDate);
+        int birthYear = calendar.get(Calendar.YEAR);
+        int age = currentYear - birthYear;
+        tbPurchaser.setAge(age);
+        //法人
+        tbPurchaser.setLegalPerson(purchaser.getDutyParagraph());
+        //身份证
+        tbPurchaser.setIdCard(purchaser.getCorporateIdCard());
+        //手机号
+        tbPurchaser.setContact(purchaser.getLinkPhone());
+        //营业执照
+        tbPurchaser.setBusinessLicense(purchaser.getBusinessLicense());
+        //银行编号
+        tbPurchaser.setBankNo(purchaser.getBankNo());
+        //银行账户
+        tbPurchaser.setBankAccount(purchaser.getBankAccount());
+        //银行名称
+        tbPurchaser.setBankName(purchaser.getBankName());
+        return tbPurchaser;
+    }
+
     /**
      * 方法抽取  导入
      * @param row

+ 3 - 1
sp-service/level-two-server/src/main/java/com/pj/tb_purchaser/TbPurchaserAppController.java

@@ -1,12 +1,14 @@
 package com.pj.tb_purchaser;
 
 import com.pj.api.dto.PurchaserDto;
+import com.pj.tb_purchaser.param.PurchaserParam;
 import com.pj.utils.sg.AjaxJson;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 
+import java.text.ParseException;
 
 
 /**
@@ -37,7 +39,7 @@ public class TbPurchaserAppController {
 
 	/** 收购商认证 */
 	@RequestMapping("identification")
-	public AjaxJson identification(TbPurchaser purchaser) {
+	public AjaxJson identification(PurchaserParam purchaser) throws ParseException {
 		boolean identification = tbPurchaserService.identification(purchaser);
 		if(!identification) return AjaxJson.getError("收购商认证信息提交失败!!!");
 

+ 19 - 19
sp-service/level-two-server/src/main/java/com/pj/tb_purchaser/TbPurchaserService.java

@@ -2,8 +2,13 @@ package com.pj.tb_purchaser;
 
 import java.io.FileOutputStream;
 import java.io.IOException;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
 import java.time.LocalDateTime;
+import java.time.Month;
 import java.time.format.DateTimeFormatter;
+import java.time.temporal.ChronoUnit;
+import java.util.Calendar;
 import java.util.Date;
 import java.util.List;
 import java.util.Objects;
@@ -13,7 +18,10 @@ import com.pj.api.client.admin.AdminInterface;
 import com.pj.api.dto.PurchaserDto;
 import com.pj.current.satoken.StpUserUtil;
 import com.pj.enummj.DeleteStatus;
+import com.pj.enummj.IsLock;
+import com.pj.enummj.JudgeStatus;
 import com.pj.enummj.People;
+import com.pj.tb_purchaser.param.PurchaserParam;
 import com.pj.utils.so.SoMap;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.poi.hssf.usermodel.HSSFRow;
@@ -74,30 +82,22 @@ public class TbPurchaserService extends ServiceImpl<TbPurchaserMapper, TbPurchas
 	}
 
 	/** 收购商认证 */
-	boolean identification(TbPurchaser purchaser){
+	boolean identification(PurchaserParam purchaser) throws ParseException {
 		if(null == purchaser) return false;
-
-		//手机号去重
-		String idCard = purchaser.getIdCard();
-		if(tbPurchaserMapper.selectList(new LambdaQueryWrapper<TbPurchaser>().eq(TbPurchaser::getIdCard,idCard).eq(TbPurchaser::getDeleteStatus,DeleteStatus.DELETE_STATUS_ON.getCode())).size() != 0)
-			throw new RuntimeException("当前手机号已被认证!");
 		//身份证号去重
-		String contact = purchaser.getContact();
-		if(tbPurchaserMapper.selectList(new LambdaQueryWrapper<TbPurchaser>().eq(TbPurchaser::getContact,contact).eq(TbPurchaser::getDeleteStatus,DeleteStatus.DELETE_STATUS_ON.getCode())).size() != 0)
+		String idCard = purchaser.getCorporateIdCard();
+		if(tbPurchaserMapper.selectList(new LambdaQueryWrapper<TbPurchaser>().eq(TbPurchaser::getIdCard,idCard).eq(TbPurchaser::getDeleteStatus,DeleteStatus.DELETE_STATUS_ON.getCode())).size() != 0)
 			throw new RuntimeException("当前身份证号已被认证!");
+		//手机号去重
+		String contact = purchaser.getLinkPhone();
+		if(tbPurchaserMapper.selectList(new LambdaQueryWrapper<TbPurchaser>().eq(TbPurchaser::getContact,contact).eq(TbPurchaser::getDeleteStatus,DeleteStatus.DELETE_STATUS_ON.getCode())).size() != 0)
+			throw new RuntimeException("当前手机号已被认证!");
+		//TODO:是否需要手机发送验证码认证?
 
-		//todo:是否需要手机发送验证码认证?
-
-		//开始保存收购商信息
-		//注册/认证时间
-		purchaser.setRegisterTime(new Date());
-		//创建时间
-		purchaser.setCreateTime(new Date());
-		//删除状态:启用
-		purchaser.setDeleteStatus(DeleteStatus.DELETE_STATUS_ON.getCode());
-
+		//封装收购商信息
+		TbPurchaser tbPurchaser = methodPurchaserService.setPurchaserProperties(purchaser);
 		// 保存收购商信息
-		int insert = tbPurchaserMapper.insert(purchaser);
+		int insert = tbPurchaserMapper.insert(tbPurchaser);
 		return insert == 1;
 	}
 

+ 55 - 0
sp-service/level-two-server/src/main/java/com/pj/tb_purchaser/param/PurchaserParam.java

@@ -0,0 +1,55 @@
+package com.pj.tb_purchaser.param;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import javax.validation.constraints.NotNull;
+
+/**
+ * 收购商认证入参
+ * @Author Mechrevo
+ * @Date 2023 08 02 10 56
+ **/
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class PurchaserParam {
+
+    @NotNull(message = "登录人ID")
+    private Long loginUserId;
+
+    @NotNull(message = "公司名称")
+    private String name;
+
+    @NotNull(message = "税号")
+    private String dutyParagraph;
+
+    @NotNull(message = "法人姓名")
+    private String corporateName;
+
+    @NotNull(message = "法人身份证")
+    private String corporateIdCard;
+
+    @NotNull(message = "联系号码")
+    private String linkPhone;
+
+    @NotNull(message = "银行编号")
+    private String bankNo;
+
+    @NotNull(message = "开户银行")
+    private String bankName;
+
+    @NotNull(message = "银行账号")
+    private String bankAccount;
+
+    @NotNull(message = "营业执照")
+    private String businessLicense;
+
+    @NotNull(message = "地址")
+    private String address;
+
+
+
+
+}

+ 324 - 329
sp-service/sp-admin/src/main/java/com/pj/project/app_user/AppUserService.java

@@ -1,13 +1,18 @@
 package com.pj.project.app_user;
 
+import java.util.Date;
+import java.util.List;
+import java.util.Random;
+import java.util.stream.Collectors;
+
 import cn.dev33.satoken.spring.SpringMVCUtil;
+import cn.dev33.satoken.stp.StpUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.baomidou.mybatisplus.extension.service.IService;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.pj.api.client.admin.AdminInterface;
 import com.pj.api.client.level_one_server.LevelOneServerInterface;
-import com.pj.api.dto.AppUserDto;
-import com.pj.api.dto.PeopleDto;
+import com.pj.api.client.level_two_server.LevelTwoServerInterface;
+import com.pj.api.client.transport.TransportInterface;
+import com.pj.api.dto.*;
 import com.pj.common.core.exception.ServiceException;
 import com.pj.current.dto.APPLoginUserInfo;
 import com.pj.current.satoken.StpAPPUserUtil;
@@ -27,198 +32,173 @@ import com.pj.utils.cache.RedisUtil;
 import com.pj.utils.sg.AjaxJson;
 import com.pj.utils.sg.WebNbUtil;
 import com.pj.utils.so.SoMap;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.crypto.password.PasswordEncoder;
 import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.transaction.annotation.Transactional;
 
-import java.util.Date;
-import java.util.List;
-import java.util.Random;
-import java.util.stream.Collectors;
-
 
 /**
  * Service: app_user -- 移动端账号
- *
  * @author qzy
  */
 @Service
 @Transactional(rollbackFor = Exception.class)
-public class AppUserService extends ServiceImpl<AppUserMapper, AppUser> implements IService<AppUser> {
-
-    /**
-     * 底层 Mapper 对象
-     */
-    @Autowired
-    AppUserMapper appUserMapper;
-    /**
-     * 密码加密模式
-     */
-    @Autowired
-    private PasswordEncoder passwordEncoder;
-    //权限字符
-    @Autowired
-    private ReRoleMenuMapper reRoleMenuMapper;
-    /**
-     * 方法抽取
-     */
-    @Autowired
-    private MethodAppUserService methodAppUserService;
-    /**
-     * 阿里云验证码
-     */
-    @Autowired
-    private SmsRetryService smsRetryService;
-    @Autowired
-    private LevelOneServerInterface levelOneServerInterface;
-    @Autowired
-    private AdminInterface adminInterface;
-
-    @Autowired
-    AppUserLoginLogService appUserLoginLogService;
-    /**
-     * 验证码前缀
-     */
-    String PREFIX = "app_user:phone:sms_code:";
-
-
-    /**
-     * 增
-     */
-    void add(AppUser t) {
-        save(t);
-    }
-
-    /**
-     * 删
-     */
-    void delete(Long id) {
-        removeById(id);
-    }
-
-    /**
-     * 改
-     */
-    void update(AppUser a) {
-        a.setUpdateTime(new Date());
-        updateById(a);
-
-    }
-
-    /**
-     * 查
-     */
-    AppUser getById(Long id) {
-        return super.getById(id);
-    }
-
-    /**
-     * 个人中心-个人详细信息
-     *
-     * @return
-     */
-    AppUserVo getSelfInfo() {
-        //查询当前人
-        AppUser appUser = appUserMapper.selectById(StpAPPUserUtil.getAPPLoginInfo().getLoginId());
-        if (appUser == null) throw new ServiceException("当前用户信息异常!");
-        //获取当前组
-        //创建返回值对象
-        AppUserVo appUserVo = new AppUserVo();
-        //根据身份获取不同名称
-        appUserVo.setFk(appUser.getFkId());
-        methodAppUserService.getRoleName(appUserVo, appUser.getUserType());
-        //设置属性
-        appUserVo.setPhone(appUser.getPhone());
-        appUserVo.setName(appUser.getName());
-
-        return appUserVo;
-    }
-
-    /**
-     * 查询单个APP有效用户
-     */
-    public AppUserDto getUserById(Long id) {
-        //查单个
-        AppUser appUser = appUserMapper.selectById(id);
-        if (appUser == null) return null;
-        //判断有效性
-        if (!appUser.getStatus().equals("0") && appUser.getDeleteStatus() != 0) {
-            AppUserDto appUserDto = new AppUserDto();
-            BeanUtils.copyProperties(appUser, appUserDto);
-            return appUserDto;
-        }
-        return null;
-    }
-
-    /**
-     * 查集合 - 根据条件(参数为空时代表忽略指定条件)
-     */
-    List<AppUser> getList(SoMap so) {
-        return appUserMapper.getList(so);
-    }
-
-    /**
-     * 启/停边民的app账号登陆限制
-     */
-    int isLock(String id, Integer type, Integer status) {
-        //查询
-        LambdaQueryWrapper<AppUser> queryWrapper = new LambdaQueryWrapper<>();
-        queryWrapper.eq(AppUser::getFkId, id);
-        queryWrapper.eq(AppUser::getUserType, type);
-        AppUser appUser1 = appUserMapper.selectList(queryWrapper).get(0);
-        if (appUser1 == null) throw new RuntimeException("您进行修改的用户不存在!");
-        //设置状态
-        appUser1.setStatus(String.valueOf(status));
-        //保存
-        int i = appUserMapper.updateById(appUser1);
-        return i;
-    }
-
-    /**
-     * 注册
-     */
-    boolean register(RegisterDto registerDto) {
-        if (registerDto == null) return false;
-        //手机号去重
-        String phone = registerDto.getPhone();
-        if (appUserMapper.selectList(new LambdaQueryWrapper<AppUser>().eq(AppUser::getPhone, phone).eq(AppUser::getDeleteStatus, DeleteStatus.DELETE_STATUS_ON.getCode())).size() != 0)
-            throw new RuntimeException("当前手机号已被注册!");
-        //开始进行实际注册
-        //1. 查询数据库内是否存在逻辑删除
-        List<Long> collect = appUserMapper.selectList(new LambdaQueryWrapper<AppUser>().eq(AppUser::getPhone, phone).eq(AppUser::getDeleteStatus, DeleteStatus.DELETE_STATUS_OFF.getCode())).stream().map(AppUser::getId).collect(Collectors.toList());
-        //删除旧数据
-        if (collect.size() > 0) appUserMapper.deleteBatchIds(collect);
-        //2.校验密码
-        if (!registerDto.getPassword().equals(registerDto.getRePassword()))
-            throw new RuntimeException("两次密码校验不通过!");
-        //3.校验短信验证码
-        String smsCode = RedisUtil.get(PREFIX + registerDto.getPhone());
-        if (smsCode == null) throw new RuntimeException("验证码已过期,请重新发送!");
-        //比对验证码
-        if (!registerDto.getSmsCode().toString().equals(smsCode)) throw new SecurityException("验证码输入错误,请检查!");
-        //4.开始新增
-        AppUser appUser = new AppUser();
-        //手机号
-        appUser.setPhone(phone);
-        //注册身份
-        appUser.setUserType(registerDto.getType());
-        //加密并设置登陆密码
-        String password = registerDto.getPassword();
-        String encode = passwordEncoder.encode(password);
-        appUser.setPassword(encode);
-        //昵称
-        appUser.setName(registerDto.getNickName());
-        //创建时间
-        appUser.setCreateTime(new Date());
-        //默认可用
-        appUser.setStatus("1");
-        appUser.setDeleteStatus(DeleteStatus.DELETE_STATUS_ON.getCode());
-        //保存
-        int insert = appUserMapper.insert(appUser);
-        return insert == 1;
-    }
+public class AppUserService extends ServiceImpl<AppUserMapper, AppUser> implements IService<AppUser>{
+
+	/** 底层 Mapper 对象 */
+	@Autowired
+	AppUserMapper appUserMapper;
+	/** 密码加密模式 */
+	@Autowired
+	private PasswordEncoder passwordEncoder;
+	//权限字符
+	@Autowired
+	private ReRoleMenuMapper reRoleMenuMapper;
+	/** 方法抽取 */
+	@Autowired
+	private MethodAppUserService methodAppUserService;
+	/** 阿里云验证码 */
+	@Autowired
+	private SmsRetryService smsRetryService;
+	@Autowired
+	private LevelOneServerInterface levelOneServerInterface;
+	@Autowired
+	private TransportInterface transportInterface;
+	@Autowired
+	private LevelTwoServerInterface levelTwoServerInterface;
+	@Autowired
+	private AdminInterface adminInterface;
+
+	@Autowired
+	AppUserLoginLogService appUserLoginLogService;
+	/** 验证码前缀 */
+	String PREFIX = "app_user:phone:sms_code:";
+
+
+
+
+	/** 增 */
+	void add(AppUser t){
+		save(t);
+	}
+
+	/** 删 */
+	void delete(Long id){
+		removeById(id);
+	}
+
+	/** 改 */
+	void update(AppUser a){
+		a.setUpdateTime(new Date());
+		updateById(a);
+
+	}
+
+	/** 查 */
+	AppUser getById(Long id){
+		return super.getById(id);
+	}
+
+	/**
+	 * 个人中心-个人详细信息
+	 * @return
+	 */
+	AppUserVo getSelfInfo(){
+		//查询当前人
+		AppUser appUser = appUserMapper.selectById(StpAPPUserUtil.getAPPLoginInfo().getLoginId());
+		if(appUser == null)throw new ServiceException("当前用户信息异常!");
+		//获取当前组
+		//创建返回值对象
+		AppUserVo appUserVo = new AppUserVo();
+		//根据身份获取不同名称
+		appUserVo.setFk(appUser.getFkId());
+		methodAppUserService.getRoleName(appUserVo,appUser.getUserType());
+		//设置属性
+		appUserVo.setPhone(appUser.getPhone());
+		appUserVo.setName(appUser.getName());
+
+		return appUserVo;
+	}
+
+	/** 查询单个APP有效用户 */
+	public AppUserDto getUserById(Long id){
+		//查单个
+		AppUser appUser = appUserMapper.selectById(id);
+		if (appUser == null)return null;
+		//判断有效性
+		if(!appUser.getStatus().equals("0") && appUser.getDeleteStatus() != 0){
+			AppUserDto appUserDto = new AppUserDto();
+			BeanUtils.copyProperties(appUser,appUserDto);
+			return appUserDto;
+		}
+		return null;
+	}
+
+	/** 查集合 - 根据条件(参数为空时代表忽略指定条件) */
+	List<AppUser> getList(SoMap so) {
+		return appUserMapper.getList(so);
+	}
+
+	/** 启/停边民的app账号登陆限制 */
+	int isLock(String id, Integer type, Integer status){
+		//查询
+		LambdaQueryWrapper<AppUser> queryWrapper = new LambdaQueryWrapper<>();
+		queryWrapper.eq(AppUser::getFkId,id);
+		queryWrapper.eq(AppUser::getUserType,type);
+		AppUser appUser1 = appUserMapper.selectList(queryWrapper).get(0);
+		if(appUser1 == null)throw new RuntimeException("您进行修改的用户不存在!");
+		//设置状态
+		appUser1.setStatus(String.valueOf(status));
+		//保存
+		int i = appUserMapper.updateById(appUser1);
+		return i;
+	}
+
+	/** 注册 */
+	boolean register(RegisterDto registerDto){
+		if(registerDto == null)return false;
+		//手机号去重
+		String phone = registerDto.getPhone();
+		if(appUserMapper.selectList(new LambdaQueryWrapper<AppUser>().eq(AppUser::getPhone,phone).eq(AppUser::getDeleteStatus,DeleteStatus.DELETE_STATUS_ON.getCode())).size() != 0)
+			throw new RuntimeException("当前手机号已被注册!");
+		//开始进行实际注册
+		//1. 查询数据库内是否存在逻辑删除
+		List<Long> collect = appUserMapper.selectList(new LambdaQueryWrapper<AppUser>().eq(AppUser::getPhone, phone).eq(AppUser::getDeleteStatus, DeleteStatus.DELETE_STATUS_OFF.getCode())).stream().map(AppUser::getId).collect(Collectors.toList());
+		//删除旧数据
+		if(collect.size() > 0)appUserMapper.deleteBatchIds(collect);
+		//2.校验密码
+		if(!registerDto.getPassword().equals(registerDto.getRePassword()))throw new RuntimeException("两次密码校验不通过!");
+		//3.校验短信验证码
+		String smsCode = RedisUtil.get(PREFIX + registerDto.getPhone());
+		if(smsCode == null)throw new RuntimeException("验证码已过期,请重新发送!");
+		//比对验证码
+		if(!registerDto.getSmsCode().toString().equals(smsCode))throw new SecurityException("验证码输入错误,请检查!");
+		//4.开始新增
+		AppUser appUser = new AppUser();
+		//手机号
+		appUser.setPhone(phone);
+		//注册身份
+		appUser.setUserType(registerDto.getType());
+		//加密并设置登陆密码
+		String password = registerDto.getPassword();
+		String encode = passwordEncoder.encode(password);
+		appUser.setPassword(encode);
+		//昵称
+		appUser.setName(registerDto.getNickName());
+		//创建时间
+		appUser.setCreateTime(new Date());
+		//默认可用
+		appUser.setStatus("1");
+		appUser.setDeleteStatus(DeleteStatus.DELETE_STATUS_ON.getCode());
+		//保存
+		int insert = appUserMapper.insert(appUser);
+		return insert == 1;
+	}
 
     /**
      * 用户登录
@@ -268,155 +248,170 @@ public class AppUserService extends ServiceImpl<AppUserMapper, AppUser> implemen
         //保存
         appUserMapper.updateById(appUser);
 
-        //开始执行登录
-        StpAPPUserUtil.login(appUser.getId());
-        // 组织返回参数,直接拿过来用的,然后自己改吧改吧
-        SoMap map = new SoMap();
-        //敏感信息置空
-        appUser.setPassword(null);
-        //执行
-        map.put("appUser", appUser);
-        //获取当前用户角色权限字符
-        List<ReRoleMenu> reRoleMenus = reRoleMenuMapper.selectList(new LambdaQueryWrapper<ReRoleMenu>().eq(ReRoleMenu::getAppRoleId, appUser.getUserType()));
-        //使用stream流对其reRoleMenus集合的权限字符进行过滤顺便转成String类型
-        List<String> per_list = reRoleMenus.stream().map(ReRoleMenu::getAppMenuId).collect(Collectors.toList()).stream().map(String::valueOf).collect(Collectors.toList());
+		//开始执行登录
+		StpAPPUserUtil.login(appUser.getId());
+		// 组织返回参数,直接拿过来用的,然后自己改吧改吧
+		SoMap map = new SoMap();
+		//敏感信息置空
+		appUser.setPassword(null);
+		//执行
+		map.put("appUser", appUser);
+		//获取当前用户角色权限字符
+		List<ReRoleMenu> reRoleMenus = reRoleMenuMapper.selectList(new LambdaQueryWrapper<ReRoleMenu>().eq(ReRoleMenu::getAppRoleId, appUser.getUserType()));
+		//使用stream流对其reRoleMenus集合的权限字符进行过滤顺便转成String类型
+		List<String> per_list = reRoleMenus.stream().map(ReRoleMenu::getAppMenuId).collect(Collectors.toList()).stream().map(String::valueOf).collect(Collectors.toList());
 //		if(reRoleMenus.size() == 0)return AjaxJson.getError("当前职务暂无权限!");
-        //过滤出权限字符
-        map.put("per_list", per_list);
-        map.put("tokenInfo", StpAPPUserUtil.getTokenInfo());
+		//过滤出权限字符
+		map.put("per_list", per_list);
+		map.put("tokenInfo", StpAPPUserUtil.getTokenInfo());
 //		StpAPPUserUtil.cachePerList(per_list);
-        APPLoginUserInfo info = new APPLoginUserInfo();
-        //获取区域
-        PeopleDto rpcById = levelOneServerInterface.getRpcById(appUser.getFkId());
-        if (rpcById != null) info.setTradeAreaId(rpcById.getTradeAreaId());
-        info.setLoginId(appUser.getId());
-        info.setLoginName(appUser.getName());
-        info.setFk(appUser.getFkId());
-        info.setUserType(appUser.getUserType());
-        StpAPPUserUtil.cacheAPPLoginInfo(info);
+		APPLoginUserInfo info=new APPLoginUserInfo();
+		//获取区域
+		switch (appUser.getUserType()){
+			case 1:
+				PeopleDto rpcById = levelOneServerInterface.getRpcById(appUser.getFkId());
+				if(rpcById != null) info.setTradeAreaId(rpcById.getTradeAreaId());
+				break;
+			case 2:
+				PeopleDto leader = levelOneServerInterface.getRpcById(appUser.getFkId());
+				if(leader != null) info.setTradeAreaId(leader.getTradeAreaId());
+				break;
+			case 3:
+				System.out.println("收购商无互市区字段");
+				break;
+			case 4:
+				DriverDto byDriverId = transportInterface.getByDriverId(appUser.getFkId());
+				if(byDriverId != null) info.setTradeAreaId(byDriverId.getTradeAreaId());
+				break;
+			case 5:
+				EnterpriseDto enterprise = levelOneServerInterface.getEnterpriseById(appUser.getFkId());
+				if(enterprise != null) info.setTradeAreaId(enterprise.getTradeAreaId());
+				break;
+			default:
+				throw new SecurityException("身份信息有误");
+		}
+
+		info.setLoginId(appUser.getId());
+		info.setLoginName(appUser.getName());
+		info.setFk(appUser.getFkId());
+		info.setUserType(appUser.getUserType());
+		StpAPPUserUtil.cacheAPPLoginInfo(info);
+		return AjaxJson.getSuccessData(map);
+	}
+
+
+	/** 忘记密码 */
+	AjaxJson forgetPassword(ForgetPasswordDto forgetPasswordDto){
+		//进行查询
+		List<AppUser> appUserList = appUserMapper.selectList
+				  (new LambdaQueryWrapper<AppUser>().eq(AppUser::getPhone, forgetPasswordDto.getPhone())
+													.eq(AppUser::getDeleteStatus, DeleteStatus.DELETE_STATUS_ON.getCode())
+													.eq(AppUser::getStatus, IsLock.IS_LOCK_ON.getCode()));
+		//判断其手机号码可能存在的异常情况
+		if(appUserList.size() > 1)
+			return AjaxJson.getError("当前账户存在异常,请联系客服进行处理!");
+		if(appUserList.size() == 0)throw new RuntimeException("您当前手机号尚未进行注册!");
+		//获取当前手机号对象
+		AppUser appUser = appUserList.get(0);
+		//从缓存中获取验证码
+		String smsCode = RedisUtil.get(PREFIX + forgetPasswordDto.getPhone());
+		if(smsCode == null)return AjaxJson.getError("验证码已过期!");
+		//比对用户输入的验证码
+		boolean result = smsCode.equals(forgetPasswordDto.getSmsCode());
+		//进行验证码校验完成后的流程
+		if(result){
+			//密码校验
+			boolean equals = forgetPasswordDto.getPassword().equals(forgetPasswordDto.getRePassword());
+			//验证码匹配成功,执行修改密码逻辑
+			//1.判断其密码验证
+			if(equals){
+				//1.1 密码校验正确,设置新密码
+				String encode = passwordEncoder.encode(forgetPasswordDto.getRePassword());
+				appUser.setPassword(encode);
+				//1.2  执行保存
+				int i = appUserMapper.updateById(appUser);
+				if(i != 1)return AjaxJson.getError("密码重置失败!");
+				return AjaxJson.getSuccess("密码找回成功!");
+			}else {
+
+				return AjaxJson.getError("两次密码校验不匹配,请重新尝试!");
+
+			}
+
+		}
+
+		//验证码匹配错误
+		return AjaxJson.getError("验证码输入错误,请检查!");
+	}
+
+	/** 获取验证码 */
+	boolean getPhoneSmsCode(String phone) throws Exception {
+		//生成4位随机数
+		Random random = new Random();
+		int randomNumber = random.nextInt(9000) + 1000;
+		//保存到缓存,默认1分钟 todo:届时放开手机验证码 randomNumber
+		RedisUtil.setByMINUTES(PREFIX + phone,123 + "", 1);
+		//发送验证码短信
+		return true;
+
+	}
+
+
+	/** 更换角色 */
+	AjaxJson updateRole(String appRoleId){
+		// 获取当前用户角色权限字符
+		List<ReRoleMenu> reRoleMenus = reRoleMenuMapper.selectList(new LambdaQueryWrapper<ReRoleMenu>().eq(ReRoleMenu::getAppRoleId, appRoleId));
+		// 使用stream流对其reRoleMenus集合的权限字符进行过滤顺便转成String类型
+		List<String> per_list = reRoleMenus.stream().map(ReRoleMenu::getAppMenuId).collect(Collectors.toList()).stream().map(String::valueOf).collect(Collectors.toList());
+		if(reRoleMenus.size() == 0)return AjaxJson.getError("当前用户角色暂无权限!");
+
+		SoMap map = new SoMap();
+		map.put("per_list", per_list);
+		StpUserUtil.cachePerList(per_list);
+
+		return AjaxJson.getSuccessData(map);
+	}
+
+	/**
+	 * 退出登录
+	 * @param appUserId appUser表主键
+	 * @return
+	 */
+	public String logout(Object appUserId){
+		if(appUserId == null || appUserId.toString().trim().equals(""))
+			throw new ServiceException("退出信息异常!");
+		StpAPPUserUtil.logout(appUserId);
+		return "退出登录成功!";
+	}
+
+	/**
+	 * 修改密码
+	 * @param oldPassword 旧密码
+	 * @param newPassword 新密码
+	 * @param rePassword 确认密码
+	 * @return
+	 */
+	public boolean modifyPassword(String oldPassword,String newPassword,String rePassword){
+		//对比新密码和确认密码
+		if(!newPassword.equals(rePassword))throw new ServiceException("新密码和确认密码不一致!");
+
+		//获取user
+		APPLoginUserInfo appLoginInfo = StpAPPUserUtil.getAPPLoginInfo();
+		AppUser appUser = appUserMapper.selectById(appLoginInfo.getLoginId());
+		if(appUser == null)throw new SecurityException("当前账户信息异常!");
+		//旧密码比对
+		boolean result = passwordEncoder.matches(oldPassword,appUser.getPassword());
+		if(!result)throw new SecurityException("旧密码输入错误!");
+		//新密码进行编码
+		String password = passwordEncoder.encode(newPassword);
+		//执行修改
+		appUser.setPassword(password);
+		//设置基本属性
+		appUser.setUpdateTime(new Date());
+		//保存
+		return 1 == appUserMapper.updateById(appUser);
+	}
 
-        //todo:保存成功登录日志
-        loginLog.setStatus("3");
-        appUserLoginLogService.save(loginLog);
-
-        return AjaxJson.getSuccessData(map);
-    }
-
-
-    /**
-     * 忘记密码
-     */
-    AjaxJson forgetPassword(ForgetPasswordDto forgetPasswordDto) {
-        //进行查询
-        List<AppUser> appUserList = appUserMapper.selectList(new LambdaQueryWrapper<AppUser>().eq(AppUser::getPhone, forgetPasswordDto.getPhone()).eq(AppUser::getDeleteStatus, DeleteStatus.DELETE_STATUS_ON.getCode()).eq(AppUser::getStatus, IsLock.IS_LOCK_ON.getCode()));
-        //判断其手机号码可能存在的异常情况
-        if (appUserList.size() > 1) return AjaxJson.getError("当前账户存在异常,请联系客服进行处理!");
-        if (appUserList.size() == 0) throw new RuntimeException("您当前手机号尚未进行注册!");
-        //获取当前手机号对象
-        AppUser appUser = appUserList.get(0);
-        //从缓存中获取验证码
-        String smsCode = RedisUtil.get(PREFIX + forgetPasswordDto.getPhone());
-        if (smsCode == null) return AjaxJson.getError("验证码已过期!");
-        //比对用户输入的验证码
-        boolean result = smsCode.equals(forgetPasswordDto.getSmsCode());
-        //进行验证码校验完成后的流程
-        if (result) {
-            //密码校验
-            boolean equals = forgetPasswordDto.getPassword().equals(forgetPasswordDto.getRePassword());
-            //验证码匹配成功,执行修改密码逻辑
-            //1.判断其密码验证
-            if (equals) {
-                //1.1 密码校验正确,设置新密码
-                String encode = passwordEncoder.encode(forgetPasswordDto.getRePassword());
-                appUser.setPassword(encode);
-                //1.2  执行保存
-                int i = appUserMapper.updateById(appUser);
-                if (i != 1) return AjaxJson.getError("密码重置失败!");
-                return AjaxJson.getSuccess("密码找回成功!");
-            } else {
-
-                return AjaxJson.getError("两次密码校验不匹配,请重新尝试!");
-
-            }
-
-        }
-
-        //验证码匹配错误
-        return AjaxJson.getError("验证码输入错误,请检查!");
-    }
-
-    /**
-     * 获取验证码
-     */
-    boolean getPhoneSmsCode(String phone) throws Exception {
-        //生成4位随机数
-        Random random = new Random();
-        int randomNumber = random.nextInt(9000) + 1000;
-        //保存到缓存,默认1分钟 todo:届时放开手机验证码 randomNumber
-        RedisUtil.setByMINUTES(PREFIX + phone, 123 + "", 1);
-        //发送验证码短信
-        return true;
-
-    }
-
-
-    /**
-     * 更换角色
-     */
-    AjaxJson updateRole(String appRoleId) {
-        // 获取当前用户角色权限字符
-        List<ReRoleMenu> reRoleMenus = reRoleMenuMapper.selectList(new LambdaQueryWrapper<ReRoleMenu>().eq(ReRoleMenu::getAppRoleId, appRoleId));
-        // 使用stream流对其reRoleMenus集合的权限字符进行过滤顺便转成String类型
-        List<String> per_list = reRoleMenus.stream().map(ReRoleMenu::getAppMenuId).collect(Collectors.toList()).stream().map(String::valueOf).collect(Collectors.toList());
-        if (reRoleMenus.size() == 0) return AjaxJson.getError("当前用户角色暂无权限!");
-
-        SoMap map = new SoMap();
-        map.put("per_list", per_list);
-        StpUserUtil.cachePerList(per_list);
-
-        return AjaxJson.getSuccessData(map);
-    }
-
-    /**
-     * 退出登录
-     *
-     * @param appUserId appUser表主键
-     * @return
-     */
-    public String logout(Object appUserId) {
-        if (appUserId == null || appUserId.toString().trim().equals("")) throw new ServiceException("退出信息异常!");
-        StpAPPUserUtil.logout(appUserId);
-        return "退出登录成功!";
-    }
-
-    /**
-     * 修改密码
-     *
-     * @param oldPassword 旧密码
-     * @param newPassword 新密码
-     * @param rePassword  确认密码
-     * @return
-     */
-    public boolean modifyPassword(String oldPassword, String newPassword, String rePassword) {
-        //对比新密码和确认密码
-        if (!newPassword.equals(rePassword)) throw new ServiceException("新密码和确认密码不一致!");
-
-        //获取user
-        APPLoginUserInfo appLoginInfo = StpAPPUserUtil.getAPPLoginInfo();
-        AppUser appUser = appUserMapper.selectById(appLoginInfo.getLoginId());
-        if (appUser == null) throw new SecurityException("当前账户信息异常!");
-        //旧密码比对
-        boolean result = passwordEncoder.matches(oldPassword, appUser.getPassword());
-        if (!result) throw new SecurityException("旧密码输入错误!");
-        //新密码进行编码
-        String password = passwordEncoder.encode(newPassword);
-        //执行修改
-        appUser.setPassword(password);
-        //设置基本属性
-        appUser.setUpdateTime(new Date());
-        //保存
-        return 1 == appUserMapper.updateById(appUser);
-    }
 
 
 }