diff --git a/jpress-model/src/main/java/io/jpress/model/UserAddress.java b/jpress-model/src/main/java/io/jpress/model/UserAddress.java index ecaaca2aea51aca75ac7dbf824ba4bc6473ba036..18de762aa23015fced5c26474989201f5ac9b807 100644 --- a/jpress-model/src/main/java/io/jpress/model/UserAddress.java +++ b/jpress-model/src/main/java/io/jpress/model/UserAddress.java @@ -29,5 +29,4 @@ public class UserAddress extends BaseUserAddress { return super.update(); } - } diff --git a/jpress-service-api/src/main/java/io/jpress/service/UserAddressService.java b/jpress-service-api/src/main/java/io/jpress/service/UserAddressService.java index 97705e31cb1a605f4f6fc5645cc6d479e4d5f0b2..cf542d05960b0859d86054989a2c8ae9fa0ed16f 100644 --- a/jpress-service-api/src/main/java/io/jpress/service/UserAddressService.java +++ b/jpress-service-api/src/main/java/io/jpress/service/UserAddressService.java @@ -92,4 +92,5 @@ public interface UserAddressService { public List findListByUserId(long userId); + void addUserAddress(UserAddress address, long userid); } diff --git a/jpress-service-provider/src/main/java/io/jpress/service/provider/UserAddressServiceProvider.java b/jpress-service-provider/src/main/java/io/jpress/service/provider/UserAddressServiceProvider.java index 864900a49a611064079c567b2b5fbaadabfe84bc..3457fd2d3ca639ddcb09ce63bdf397bc03124080 100644 --- a/jpress-service-provider/src/main/java/io/jpress/service/provider/UserAddressServiceProvider.java +++ b/jpress-service-provider/src/main/java/io/jpress/service/provider/UserAddressServiceProvider.java @@ -5,9 +5,12 @@ import io.jboot.aop.annotation.Bean; import io.jboot.db.model.Column; import io.jboot.db.model.Columns; import io.jboot.service.JbootServiceBase; +import io.jboot.utils.ArrayUtil; +import io.jpress.commons.utils.CommonsUtils; import io.jpress.model.UserAddress; import io.jpress.service.UserAddressService; +import java.util.Date; import java.util.List; import java.util.Optional; @@ -21,6 +24,7 @@ public class UserAddressServiceProvider extends JbootServiceBase im @Override public UserAddress findDefaultAddress(long userId) { + List userAddresses = findListByUserId(userId); if (userAddresses == null || userAddresses.isEmpty()) { return null; @@ -33,4 +37,35 @@ public class UserAddressServiceProvider extends JbootServiceBase im public List findListByUserId(long userId) { return DAO.findListByColumn(Column.create("user_id", userId)); } -} \ No newline at end of file + + @Override + public void addUserAddress(UserAddress address, long userid){ + if (address==null){ + return; + } + address.setUserId(userid); + if (address.getId() != null) { + address.setModified(new Date()); + } + CommonsUtils.escapeModel(address);//xss safe + //如果用户只有一个地址,将此地址设为默认 + if (findListByUserId(userid).size()==0){ + address.setWidthDefault(true); + } + Long addressId = (Long) saveOrUpdate(address); + //新设置了默认,那么其他地址改为非默认 + if (address.getWidthDefault()) { + Columns columns = Columns.create(); + columns.add("user_id", userid); + columns.eq("width_default", true); + List list = findListByColumns(columns); + if (list != null && list.size() > 0) { + for (UserAddress userAddress : list) { + userAddress.setWidthDefault(userAddress.getId()==addressId); + userAddress.update(); + } + } + } + + } +} diff --git a/jpress-web/src/main/java/io/jpress/web/front/AddressController.java b/jpress-web/src/main/java/io/jpress/web/front/AddressController.java index 5d627f2689d6e3f614c06b48b15399b031f9c8d0..ad59157476919e610156be023ec1ca962c8221a6 100644 --- a/jpress-web/src/main/java/io/jpress/web/front/AddressController.java +++ b/jpress-web/src/main/java/io/jpress/web/front/AddressController.java @@ -41,7 +41,7 @@ public class AddressController extends UcenterControllerBase { if (id != null) { UserAddress data = userAddressService.findById(id); render404If(notLoginedUserModel(data)); - setAttr("data", data); + setAttr("address", data); } render("address_edit.html"); } @@ -88,33 +88,8 @@ public class AddressController extends UcenterControllerBase { * 新增/编辑地址 */ public void doAdd() { - UserAddress address = getBean(UserAddress.class, "address"); - - User user = getLoginedUser(); - address.setUserId(user.getId()); - address.setCreated(new Date()); - - if (address.getId() != null) { - address.setModified(new Date()); - } - - //新设置了默认,那么其他地址改为非默认 - if (address.isDefault()) { - Columns columns = Columns.create(); - columns.add("user_id", user.getId()); - columns.eq("is_default", true); - List list = userAddressService.findListByColumns(columns); - if (list != null && list.size() > 0) { - for (UserAddress userAddress : list) { - userAddress.setWidthDefault(false); - userAddress.update(); - } - } - } - - userAddressService.saveOrUpdate(address); - + userAddressService.addUserAddress(address,getLoginedUser().getId()); renderJson(Ret.ok()); } diff --git a/jpress-web/src/main/webapp/WEB-INF/views/ucenter/address/address_edit.html b/jpress-web/src/main/webapp/WEB-INF/views/ucenter/address/address_edit.html index 8452dcaf099afc303e23b9b0719ed6273350d4b4..a3b3ee0909c8def9b8029fa309056737209455b5 100644 --- a/jpress-web/src/main/webapp/WEB-INF/views/ucenter/address/address_edit.html +++ b/jpress-web/src/main/webapp/WEB-INF/views/ucenter/address/address_edit.html @@ -47,21 +47,21 @@
- +
- +
- +
@@ -69,9 +69,9 @@
- - - + + +
@@ -81,7 +81,7 @@
+ name="address.detail">#(address.detail ??)

请具体到街道、楼层以及门牌号

@@ -89,19 +89,17 @@
- +
+
- +
- + +
-
diff --git a/jpress-web/src/main/webapp/WEB-INF/views/ucenter/address/address_list.html b/jpress-web/src/main/webapp/WEB-INF/views/ucenter/address/address_list.html index ac9135b28096be8dff132fc21f10d0b57b1412c1..aa01254df76b967feb2960018d04d392309a7d9e 100644 --- a/jpress-web/src/main/webapp/WEB-INF/views/ucenter/address/address_list.html +++ b/jpress-web/src/main/webapp/WEB-INF/views/ucenter/address/address_list.html @@ -138,11 +138,7 @@ #(data.zipcode ??)   - #if(data.isDefault) - 是 - #else - 否 - #end + #(data.width_default?'是':'否') #end