svnno****@sourc*****
svnno****@sourc*****
2008年 2月 11日 (月) 08:11:33 JST
Revision: 806 http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi?root=pal&view=rev&rev=806 Author: shinsuke Date: 2008-02-11 08:11:33 +0900 (Mon, 11 Feb 2008) Log Message: ----------- updated methods. Modified Paths: -------------- pompei/libraries/pompei-db/trunk/src/main/java/jp/sf/pal/pompei/service/impl/CustomerServiceImpl.java pompei/libraries/pompei-db/trunk/src/test/java/jp/sf/pal/pompei/service/impl/CustomerServiceImplTest.java pompei/libraries/pompei-db/trunk/src/test/resources/jp/sf/pal/pompei/service/impl/CustomerServiceImplTest.xls pompei/libraries/pompei-db/trunk/src/test/resources/jp/sf/pal/pompei/service/impl/CustomerServiceImplTest_getCustomerList_Expected.xls Added Paths: ----------- pompei/libraries/pompei-db/trunk/src/test/resources/jp/sf/pal/pompei/service/impl/CustomerServiceImplTest_getAddressBookList_Expected.xls -------------- next part -------------- Modified: pompei/libraries/pompei-db/trunk/src/main/java/jp/sf/pal/pompei/service/impl/CustomerServiceImpl.java =================================================================== --- pompei/libraries/pompei-db/trunk/src/main/java/jp/sf/pal/pompei/service/impl/CustomerServiceImpl.java 2008-02-10 22:33:49 UTC (rev 805) +++ pompei/libraries/pompei-db/trunk/src/main/java/jp/sf/pal/pompei/service/impl/CustomerServiceImpl.java 2008-02-10 23:11:33 UTC (rev 806) @@ -1,13 +1,18 @@ package jp.sf.pal.pompei.service.impl; import java.math.BigDecimal; +import java.sql.Timestamp; +import java.util.Calendar; import java.util.List; import java.util.Map; import jp.sf.pal.pompei.PompeiDBConstants; import jp.sf.pal.pompei.PompeiDBException; +import jp.sf.pal.pompei.cbean.AddressBookCB; +import jp.sf.pal.pompei.cbean.BasketCB; import jp.sf.pal.pompei.cbean.CustomerCB; import jp.sf.pal.pompei.exbhv.AddressBookBhv; +import jp.sf.pal.pompei.exbhv.BasketBhv; import jp.sf.pal.pompei.exbhv.CustomerBhv; import jp.sf.pal.pompei.exentity.AddressBook; import jp.sf.pal.pompei.exentity.Basket; @@ -22,6 +27,8 @@ private AddressBookBhv addressBookBhv; + private BasketBhv basketBhv; + public List<Customer> getCustomerList() { CustomerCB customerCB = new CustomerCB(); customerCB.query().addOrderBy_LastnameDescription_Asc(); @@ -34,8 +41,8 @@ getAddressBookBhv().insert(addressBook); } - public void addBasket(Basket customerBaskets) { - // TODO Auto-generated method stub + public void addBasket(Basket basket) { + getBasketBhv().insert(basket); } @@ -51,42 +58,260 @@ public void addCustomer(Map<String, String> userInfo, Customer customers, AddressBook addressBook) throws PompeiDBException { - // TODO Auto-generated method stub - + // String password = userInfo.remove(PompeiDBConstants.USER_PASSWORD); + // String verifyPassword = userInfo + // .remove(PompeiDBConstants.USER_VERIFY_PASSWORD); + // if (!UserRegistrationUtil + // .getBoolean(PompeiDBConstants.FORCE_GENERATED_PASSWORD)) { + // if (password == null || password.equals("")) { + // throw new PompeiDBException("error.lacking.password", + // "The password is null."); + // } + // } + // + // if (UserRegistrationUtil + // .getBoolean(PompeiDBConstants.FORCE_USE_EMAIL_AS_USERNAME)) { + // // force user.name to be same as email + // userInfo.put(PompeiDBConstants.USER_NAME, userInfo + // .get(PompeiDBConstants.USER_BUSINESS_INFO_ONLINE_EMAIL)); + // } + // + // boolean userIdExistsFlag = true; + // try { + // SystemUtil.getUserManager().getUser( + // userInfo.get(PompeiDBConstants.USER_NAME)); + // } catch (org.apache.jetspeed.security.SecurityException e) { + // userIdExistsFlag = false; + // } + // + // if (userIdExistsFlag) { + // throw new PompeiDBException("error.userid_already_exists", + // "The user id already exists."); + // } + // + // if (UserRegistrationUtil.getBoolean(PompeiDBConstants.FORCE_UNIQUE_EMAIL)) { + // boolean emailExistsFlag = true; + // User user = null; + // try { + // user = SystemUtil + // .getPortalAdministration() + // .lookupUserFromEmail( + // userInfo + // .get(PompeiDBConstants.USER_BUSINESS_INFO_ONLINE_EMAIL)); + // } catch (AdministrationEmailException e) { + // emailExistsFlag = false; + // } + // if ((emailExistsFlag) || (user != null)) { + // throw new PompeiDBException("error.email_already_exists", + // "The email already exists."); + // } + // + // } + // + // if (UserRegistrationUtil + // .getBoolean(PompeiDBConstants.FORCE_GENERATED_PASSWORD)) { + // try { + // password = SystemUtil.getPortalAdministration() + // .generatePassword(); + // } catch (Exception e) { + // throw new PompeiDBException("error.failed_to_generate_password", + // "Could not create password.", e); + // } + // } else { + // if (verifyPassword == null || !verifyPassword.equals(password)) { + // throw new PompeiDBException("error.two_passwords_do_not_match", + // "Two passwords do not match."); + // } + // } + // + // String userName = userInfo.get(PompeiDBConstants.USER_NAME); + // Customer c=getCustomerByPortalId(userName); + // if(c!=null){ + // deleteCustomer(c.getCustomerId()); + // } + // + // try { + // SystemUtil.getPortalAdministration().registerUser( + // userName, + // password, + // UserRegistrationUtil.getStringList(PompeiDBConstants.ROLES), + // UserRegistrationUtil.getStringList(PompeiDBConstants.GROUPS), + // userInfo, // note use of only + // // PLT.D values here. + // UserRegistrationUtil.getStringMap(PompeiDBConstants.RULES), + // PompeiDBConstants.DEFAULT_USER_TEMPLATE_FOLDER); // TODO default template path + // } catch (Exception e) { + // cancelToAddCustomer(userInfo, customer, addressBook); + // throw new PompeiDBException("error.failed_to_add", + // "Could not register a user.", e); + // } + // + // // set security constraint + // String userhome = Folder.USER_FOLDER + userName; + // try { + // PageManager pageManager = SystemUtil.getPageManager(); + // SecurityConstraint sc = pageManager.newPageSecurityConstraint(); + // sc.setUsers(parseCSVList(userName)); + // List<String> permissions = new ArrayList<String>(); + // permissions.add(JetspeedActions.VIEW); + // permissions.add(JetspeedActions.EDIT); + // permissions.add(JetspeedActions.HELP); + // sc.setPermissions(permissions); + // Folder userFolder = pageManager.getFolder(userhome); + // + // if (userFolder.getSecurityConstraints() == null) { + // userFolder.setSecurityConstraints(pageManager + // .newSecurityConstraints()); + // } + // userFolder.getSecurityConstraints().getSecurityConstraints() + // .add(sc); + // + // pageManager.updateFolder(userFolder); + // pageManager.reset(); + // } catch (Exception e) { + // cancelToAddCustomer(userInfo, customer, addressBook); + // throw new PompeiDBException("could.not.access.folder", + // "Could not access a folder: " + userhome, e); + // } + // + // // set portal id + // customer.setPortalId(userName); + // + // try { + // // create customer + // getCustomerBhv().insert(customer); + // addressBook.setCustomerId(customer.getCustomerId()); + // getAddressBookBhv().insert(addressBook); + // } catch (Exception e) { + // cancelToAddCustomer(userInfo, customer, addressBook); + // throw new PompeiDBException("could.not.insert.customer.data", + // "Could not insert customer data. ", e); + // } + // + // if (UserRegistrationUtil.getBoolean(PompeiDBConstants.SEND_MAIL)) { + // if (password != null) { + // userInfo.put("password", password); + // } + // + // try { + // // template + // // String templ = getTemplatePath(FacesContext + // // .getCurrentInstance()); + // // + // // if (templ == null) { + // // cancelToAddCustomer(userInfo, customer, addressBook); + // // throw new PompeiDBException( + // // "error.registration_completed_but_could_not_find_template", + // // "Email template is not available."); + // // } + // // SystemUtil + // // .getPortalAdministration() + // // .sendEmail( + // // (PortletConfig) FacesContext + // // .getCurrentInstance() + // // .getExternalContext().getRequestMap() + // // .get("javax.portlet.PortletConfig"), + // // userInfo + // // .get(PompeiDBConstants.USER_BUSINESS_INFO_ONLINE_EMAIL), + // // emailSubject, templ, userInfo); + // //TODO move user-signup.vm to init-param + //// sendSignupMail(userInfo, userInfo + //// .get(PompeiDBConstants.USER_BUSINESS_INFO_ONLINE_EMAIL), + //// SystemUtil.getAdministratorEmail(), "user-signup.vm"); + // } catch (Exception e) { + // cancelToAddCustomer(userInfo, customer, addressBook); + // throw new PompeiDBException( + // "error.registration_completed_but_could_not_send", + // "Could not send a registration mail.", e); + // } + // } } public void cleanupBasket(BigDecimal customerId) { - // TODO Auto-generated method stub + // TODO set expire time + Calendar yesterday = Calendar.getInstance(); + yesterday.add(Calendar.DATE, -1); + BasketCB basketCB = new BasketCB(); + basketCB.query().setCustomerId_Equal(customerId); + basketCB.query().setUpdatedDate_LessEqual( + new Timestamp(yesterday.getTimeInMillis())); + List<Basket> basketList = getBasketBhv().selectList(basketCB); + if (basketList.size() > 0) { + getBasketBhv().delegateDeleteList(basketList); + } } public void deleteAddressBook(AddressBook addressBook) { getAddressBookBhv().delete(addressBook); } - public void deleteBasket(BigDecimal customerBasketId) { - // TODO Auto-generated method stub + public void deleteBasket(Basket basket) { + getBasketBhv().delete(basket); } + public void deleteBasket(BigDecimal basketId) { + BasketCB cb = new BasketCB(); + cb.query().setBasketId_Equal(basketId); + Basket basket = getBasketBhv().selectEntity(cb); + getBasketBhv().delete(basket); + + } + public void deleteCustomer(BigDecimal customersId) { - // TODO Auto-generated method stub + Customer customer = getCustomer(customersId); + // address book + AddressBookCB addressBookCB = new AddressBookCB(); + addressBookCB.query().setCustomerId_Equal(customer.getCustomerId()); + List<AddressBook> addressBookList = addressBookBhv + .selectList(addressBookCB); + if (addressBookList != null && !addressBookList.isEmpty()) { + addressBookBhv.delegateDeleteList(addressBookList); + } + + // basket + BasketCB basketCB = new BasketCB(); + basketCB.query().setCustomerId_Equal(customer.getCustomerId()); + List<Basket> basketList = getBasketBhv().selectList(basketCB); + if (basketList != null && !basketList.isEmpty()) { + getBasketBhv().delegateDeleteList(basketList); + } + + customerBhv.delete(customer); } public AddressBook getAddressBook(BigDecimal addressBookId) { - // TODO Auto-generated method stub - return null; + AddressBookCB cb = new AddressBookCB(); + cb.setupSelect_Customer(); + //TODO needed? + cb.setupSelect_Country(); + // needed(for tax) + cb.setupSelect_DeliveryZone(); + cb.query().setAddressBookId_Equal(addressBookId); + return getAddressBookBhv().selectEntity(cb); } public List<AddressBook> getAddressBookList(BigDecimal customerId) { - // TODO Auto-generated method stub - return null; + AddressBookCB cb = new AddressBookCB(); + cb.setupSelect_Customer(); + //TODO needed? + cb.setupSelect_Country(); + // needed(for tax) + cb.setupSelect_DeliveryZone(); + cb.query().setCustomerId_Equal(customerId); + return getAddressBookBhv().selectList(cb); } public Basket getBasket(BigDecimal customerId, BigDecimal productId) { // TODO Auto-generated method stub - return null; + BasketCB cb = new BasketCB(); + cb.setupSelect_Customer(); + cb.setupSelect_Product(); + cb.query().setCustomerId_Equal(customerId); + cb.query().setProductId_Equal(productId); + return getBasketBhv().selectEntity(cb); } public List<Basket> getBasketList(BigDecimal customerId) { @@ -95,28 +320,53 @@ } public Customer getCustomer(BigDecimal customersId) { - // TODO Auto-generated method stub - return null; + CustomerCB cb = new CustomerCB(); + cb.query().setCustomerId_Equal(customersId); + Customer customers = customerBhv.selectEntity(cb); + return customers; } public Customer getCustomerByPortalId(String portalId) { - // TODO Auto-generated method stub - return null; + CustomerCB cb = new CustomerCB(); + // cb.setupSelect_CustomerInfoAsOne(); + cb.query().setPortalId_Equal(portalId); + List<Customer> customers = customerBhv.selectList(cb); + if (customers.isEmpty()) { + return null; + } + return customers.get(0); } public AddressBook getDefaultAddressBook(BigDecimal customerId) { - // TODO Auto-generated method stub + AddressBookCB cb = new AddressBookCB(); + //TODO needed? + cb.setupSelect_Customer(); + //TODO needed? + cb.setupSelect_Country(); + // needed(for tax) + cb.setupSelect_DeliveryZone(); + //TODO needed? + + cb.query().setCustomerId_Equal(customerId); + for (AddressBook ab : getAddressBookBhv().selectList(cb)) { + if (PompeiDBConstants.TRUE.equals(ab.getDefaultAddress())) { + return ab; + } + } return null; } - public void updateBasket(Basket customerBasket) { - // TODO Auto-generated method stub + public void updateBasket(Basket basket) { + getBasketBhv().update(basket); } public void updateCustomer(Customer customer, AddressBook addressBook) { - // TODO Auto-generated method stub + getCustomerBhv().update(customer); + if (addressBook != null) { + getAddressBookBhv().update(addressBook); + } } public CustomerBhv getCustomerBhv() { @@ -134,4 +384,13 @@ public void setAddressBookBhv(AddressBookBhv addressBookBhv) { this.addressBookBhv = addressBookBhv; } + + public BasketBhv getBasketBhv() { + return basketBhv; + } + + public void setBasketBhv(BasketBhv basketBhv) { + this.basketBhv = basketBhv; + } + } Modified: pompei/libraries/pompei-db/trunk/src/test/java/jp/sf/pal/pompei/service/impl/CustomerServiceImplTest.java =================================================================== --- pompei/libraries/pompei-db/trunk/src/test/java/jp/sf/pal/pompei/service/impl/CustomerServiceImplTest.java 2008-02-10 22:33:49 UTC (rev 805) +++ pompei/libraries/pompei-db/trunk/src/test/java/jp/sf/pal/pompei/service/impl/CustomerServiceImplTest.java 2008-02-10 23:11:33 UTC (rev 806) @@ -2,8 +2,10 @@ import static org.seasar.framework.unit.S2Assert.assertEquals; +import java.math.BigDecimal; import java.util.List; +import jp.sf.pal.pompei.exentity.AddressBook; import jp.sf.pal.pompei.exentity.Customer; import jp.sf.pal.pompei.service.CustomerService; @@ -21,4 +23,10 @@ List<Customer> customerList = customerService.getCustomerList(); assertEquals("1", ctx.getExpected(), customerList); } + + public void getAddressBookList() throws Exception { + List<AddressBook> addressBookList = customerService + .getAddressBookList(BigDecimal.ONE); + assertEquals("1", ctx.getExpected(), addressBookList); + } } Modified: pompei/libraries/pompei-db/trunk/src/test/resources/jp/sf/pal/pompei/service/impl/CustomerServiceImplTest.xls =================================================================== (Binary files differ) Added: pompei/libraries/pompei-db/trunk/src/test/resources/jp/sf/pal/pompei/service/impl/CustomerServiceImplTest_getAddressBookList_Expected.xls =================================================================== (Binary files differ) Property changes on: pompei/libraries/pompei-db/trunk/src/test/resources/jp/sf/pal/pompei/service/impl/CustomerServiceImplTest_getAddressBookList_Expected.xls ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Modified: pompei/libraries/pompei-db/trunk/src/test/resources/jp/sf/pal/pompei/service/impl/CustomerServiceImplTest_getCustomerList_Expected.xls =================================================================== (Binary files differ)