{%hackmd @themes/orangeheart %} # **顧客中心** ![](https://i.imgur.com/zAYs1U4.png) ### <font color="3E54AC"> **使用到的技術** :computer: Spring Validation</font> 顧客中心分成3大區塊 1. 用戶詳情 2. 地址詳情 3. 訂單詳情 ## 用戶詳情 >這個區塊展示用戶詳細資料,可以透過<font color="95BDFF">修改詳情</font>按鈕來修改 ![](https://i.imgur.com/QTjDKmU.png) >資料在修改的時候透過==Spring Validation==來進行資料驗證 >透過不同註解來確保資料正確性 ![](https://i.imgur.com/LZniRbL.png) ## 地址詳情 >這個區塊展示用戶預先設定的收件地址,最多可以儲存五組,可以透過<font color="95BDFF">新增地址</font>進行新增,透過<font color="5E6F64">齒輪</font>與<font color="FF0075">垃圾桶</font>進行修改與刪除。 :+1: 如果要將**非**預設的地址設定成預設的時候, ```java @Override public void updateAddress(UserAddressDTO userAddressDTO) { log.debug("開始修改用戶地址"); //檢查要修改的地址是否存在 int addressCount = userAddressMapper.countAddressByDetail(userAddressDTO.getId()); if(addressCount ==0){ throw new ServiceException(ServiceCode.ERR_BAD_REQUEST,"地址不存在!"); } //判斷輸入的地址是否是預設 if(userAddressDTO.getIsDefault().equals(ConstUtils.IS_DEFAULT)){ //是預設,先將該使用者的其他保存地址的isDefault設定為0 //獲取用戶id Long userId = ConstUtils.getUserId(); //是預設,先將該使用者的其他保存地址的isDefault設定為0並避開當前修改id userAddressMapper.updateAddressDefaultByUserId(userId,userAddressDTO.getId()); //修改用戶預設地址 updateUserDefault(userId,userAddressDTO.getId()); } //開始修改地址 int rows = userAddressMapper.updateUserAddress(userAddressDTO); if (rows !=1){ throw new ServiceException(ServiceCode.ERR_UPDATE,"伺服器忙碌請稍候!"); } } ``` ## 訂單詳情 >這邊負責展示該用戶所有的訂單,透過<font color="5E6F64">訂單詳情</font>按鈕可以檢視該筆訂單的詳細資料。 ###### tags: `java`