diff --git a/server/crm/pom.xml b/server/crm/pom.xml index ab3935d..4ca0c80 100644 --- a/server/crm/pom.xml +++ b/server/crm/pom.xml @@ -17,7 +17,7 @@ ambition-crm - com.pudonghot.ambition.crm.AmbitionCRM + com.pudonghot.ambition.crm.AmbitionCRM @@ -99,6 +99,10 @@ org.springframework.boot spring-boot-maven-plugin + + false + true + diff --git a/server/crm/src/main/java/com/pudonghot/ambition/crm/controller/CustomerController.java b/server/crm/src/main/java/com/pudonghot/ambition/crm/controller/CustomerController.java index 9b1a834..cee4c07 100644 --- a/server/crm/src/main/java/com/pudonghot/ambition/crm/controller/CustomerController.java +++ b/server/crm/src/main/java/com/pudonghot/ambition/crm/controller/CustomerController.java @@ -11,6 +11,7 @@ import javax.validation.constraints.Min; import me.chyxion.tigon.model.ListResult; import org.apache.commons.lang3.tuple.Pair; import me.chyxion.tigon.webmvc.ResourceModel; +import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotNull; import org.apache.commons.lang3.StringUtils; import com.pudonghot.ambition.crm.model.User; @@ -20,6 +21,7 @@ import org.apache.shiro.authz.annotation.RequiresRoles; import org.springframework.web.multipart.MultipartFile; import com.pudonghot.ambition.crm.model.CustomerProperty; import com.pudonghot.ambition.crm.service.CustomerService; +import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestMapping; @@ -163,6 +165,12 @@ public class CustomerController "text/csv; charset=gbk", null); } + @RequiresRoles(User.ROLE_ADMIN) + @PostMapping("/delete") + public void delete(@NotBlank @RequestParam("id") String id) { + ((CustomerService) queryService).delete(id); + } + /** * {@inheritDoc} */ diff --git a/server/crm/src/main/java/com/pudonghot/ambition/crm/service/support/CustomerServiceSupport.java b/server/crm/src/main/java/com/pudonghot/ambition/crm/service/support/CustomerServiceSupport.java index b238770..223fbd7 100644 --- a/server/crm/src/main/java/com/pudonghot/ambition/crm/service/support/CustomerServiceSupport.java +++ b/server/crm/src/main/java/com/pudonghot/ambition/crm/service/support/CustomerServiceSupport.java @@ -2,6 +2,7 @@ package com.pudonghot.ambition.crm.service.support; import java.io.*; import java.util.*; +import lombok.val; import lombok.extern.slf4j.Slf4j; import org.apache.commons.io.FileUtils; import org.springframework.util.Assert; @@ -9,7 +10,6 @@ import me.chyxion.tigon.mybatis.Search; import me.chyxion.tigon.model.ViewModel; import org.apache.commons.csv.CSVRecord; import org.apache.commons.csv.CSVFormat; -import org.apache.commons.csv.CSVPrinter; import com.pudonghot.ambition.crm.model.*; import me.chyxion.tigon.model.ListResult; import com.pudonghot.ambition.crm.mapper.*; @@ -82,20 +82,21 @@ public class CustomerServiceSupport /** * override find by id with find by search + * * {@inheritDoc} */ @Override public ViewModel findViewModel(final String id) { - final Customer customer = mapper.findForShow(id); + val customer = mapper.findForShow(id); ViewModel viewModel = null; if (customer != null) { viewModel = toViewModel(customer); // accounts - final List permissions = customerPermissionMapper.list( + val permissions = customerPermissionMapper.list( new Search(CustomerPermission.CUSTOMER_ID, id) .eq(CustomerPermission.ENABLED, true)); - final List accounts = new ArrayList<>(permissions.size()); + val accounts = new ArrayList<>(permissions.size()); for (CustomerPermission permission : permissions) { accounts.add(permission.getUserAccount()); } @@ -113,6 +114,7 @@ public class CustomerServiceSupport applicationMapper.list(new Search().asc(Application.NAME))); } + return viewModel; } @@ -122,7 +124,7 @@ public class CustomerServiceSupport @Override public ListResult> listViewModelsPage(Search search) { final String account = search.getAttr(User.ACCOUNT); - final ListResult> result = + val result = new ListResult<>(toViewModel( mapper.listForShow(search, account)), mapper.countForShow(search, account)); @@ -136,12 +138,12 @@ public class CustomerServiceSupport result.setAttr("cityList", mapper.listCity()); result.setAttr("salespersonList", mapper.listSalesperson()); - final List statusList = + val statusList = customerPropertyMapper.list( new Search(CustomerProperty.TYPE, CustomerProperty.Type.STATUS) .asc(CustomerProperty.SORT)); - final CustomerProperty noneStatus = new CustomerProperty(); + val noneStatus = new CustomerProperty(); noneStatus.setId("null"); noneStatus.setName("None"); noneStatus.setEnabled(true); @@ -161,26 +163,25 @@ public class CustomerServiceSupport */ @Override public ViewModel update(final CustomerFormForUpdate form) { - final String customerId = form.getId(); + val customerId = form.getId(); customerApplicationMapper.delete( new Search(CustomerApplication.CUSTOMER_ID, customerId)); customerPermissionMapper.delete( new Search(CustomerPermission.CUSTOMER_ID, customerId) .eq(CustomerPermission.TYPE, CustomerPermission.Type.APPLICATION)); - final String[] applications = form.getApplications(); + val applications = form.getApplications(); if (applications != null && applications.length > 0) { - final String operator = form.getUpdatedBy(); - final Date now = new Date(); - for (final String applicationId : applications) { - final Application application = - applicationMapper.find(applicationId); + val operator = form.getUpdatedBy(); + val now = new Date(); + for (val applicationId : applications) { + val application = applicationMapper.find(applicationId); Assert.state(application != null, "No application [" + applicationId + "] found"); Assert.state(application.isEnabled(), "Application [" + application.getName() + "] is disabled"); - final CustomerApplication customerApplication = new CustomerApplication(); + val customerApplication = new CustomerApplication(); customerApplication.setId(idSeq.get()); customerApplication.setEnabled(true); customerApplication.setCustomerId(customerId); @@ -189,7 +190,7 @@ public class CustomerServiceSupport customerApplication.setDateCreated(now); customerApplicationMapper.insert(customerApplication); - final String applicationOwner = application.getOwner(); + val applicationOwner = application.getOwner(); if (StringUtils.isNotBlank(applicationOwner)) { log.info("Add application owner [{}] customer [{}] permission.", applicationOwner, customerId); @@ -210,15 +211,15 @@ public class CustomerServiceSupport List> ytdSales = null; - final String strYears = model.getYears(); - final String strYtdSales = model.getYtdSales(); + val strYears = model.getYears(); + val strYtdSales = model.getYtdSales(); String[] years = null; if (StringUtils.isNotBlank(strYears) && StringUtils.isNotBlank(strYtdSales)) { years = strYears.split(SPLITTER); - final String[] sales = strYtdSales.split(SPLITTER); + val sales = strYtdSales.split(SPLITTER); ytdSales = new ArrayList<>(years.length); int i = 0; for (final String year : years) { @@ -233,26 +234,15 @@ public class CustomerServiceSupport viewModel.setAttr("ytdSales", ytdSales != null ? ytdSales : Collections.emptyList()); - // recent 3 issues - // final List> recentIssues = - // customerIssueService.listRecent(model.getId(), 3); - - final String lastIssue = model.getLastIssue(); + val lastIssue = model.getLastIssue(); if (StringUtils.isNotBlank(lastIssue)) { - final String[] issueParts = lastIssue.split(SPLITTER); + val issueParts = lastIssue.split(SPLITTER); CustomerIssue issue = new CustomerIssue(); issue.setId(issueParts[0]); issue.setIssue(issueParts[1]); issue.setDateCreated(new Date(Long.parseLong(issueParts[2]))); viewModel.setAttr("issue1", issue); } -// if (!recentIssues.isEmpty()) { -// int i = 0; -// final Iterator> it = recentIssues.iterator(); -// while (it.hasNext()) { -// viewModel.setAttr("issue" + (++i), it.next()); -// } -// } } /** @@ -262,9 +252,8 @@ public class CustomerServiceSupport @Override public void importCSV(final String operator, final InputStream csvIn) { - final Date now = new Date(); - - final ImportRecord importRecord = new ImportRecord(); + val now = new Date(); + val importRecord = new ImportRecord(); importRecord.setId(idSeq.get()); importRecord.setType(ImportRecord.TYPE_CUSTOMER); importRecord.setCompleted(false); @@ -279,6 +268,32 @@ public class CustomerServiceSupport private final User user = new User(); private final CustomerPermission permission = new CustomerPermission(); + /** + * {@inheritDoc} + */ + @Override + public void read(final CSVRecord record) { + val customerId = record.get(0).trim(); + if (StringUtils.isBlank(customerId)) { + log.info("Blank customer id found, ignore."); + return; + } + customer.setId(customerId); + customer.setName(record.get(1).trim()); + customer.setCountryCode(record.get(2).trim()); + customer.setState(record.get(3).trim()); + customer.setCity(record.get(4).trim()); + customer.setMs(record.get(5).trim()); + customer.setRegion(record.get(6).trim()); + val employeeId = StringUtils.defaultIfBlank(record.get(7).trim(), null); + customer.setSalesperson(employeeId); + log.info("Customer [{}] read.", customer); + + createUserIfNotExist(operator, employeeId, now); + createOrUpdateCustomer(operator, customer, now); + createOrUpdateCustomerPermissions(operator, customerId, record.get(8), now); + } + /** * {@inheritDoc} */ @@ -298,32 +313,6 @@ public class CustomerServiceSupport */ } - /** - * {@inheritDoc} - */ - @Override - public void read(final CSVRecord record) { - final String customerId = record.get(0).trim(); - if (StringUtils.isBlank(customerId)) { - log.info("Blank customer id found, ignore."); - return; - } - customer.setId(customerId); - customer.setName(record.get(1).trim()); - customer.setCountryCode(record.get(2).trim()); - customer.setState(record.get(3).trim()); - customer.setCity(record.get(4).trim()); - customer.setMs(record.get(5).trim()); - customer.setRegion(record.get(6).trim()); - final String employeeId = StringUtils.defaultIfBlank(record.get(7).trim(), null); - customer.setSalesperson(employeeId); - log.info("Customer [{}] read.", customer); - - createUserIfNotExist(operator, employeeId, now); - createOrUpdateCustomer(operator, customer, now); - createOrUpdateCustomerPermissions(operator, customerId, record.get(8), now); - } - // -- // private methods @@ -336,7 +325,7 @@ public class CustomerServiceSupport user.setAccount(employeeId); user.setEmployeeId(employeeId); - final String password = idSeq.get(); + val password = idSeq.get(); user.setPassword(password); user.setGender(Constants.GENDER_MALE); user.setEnabled(true); @@ -351,10 +340,10 @@ public class CustomerServiceSupport private void createOrUpdateCustomer(final String operator, final Customer customer, final Date date) { log.info("User [{}] create or update customer [{}].", operator, customer); - final String customerId = customer.getId(); - final String ms = customer.getMs(); + val customerId = customer.getId(); + val ms = customer.getMs(); - final Customer customerExisted = mapper.find(customerId); + val customerExisted = mapper.find(customerId); if (customerExisted != null) { log.info("Customer existed [{}] found, update.", customerExisted); // basic props @@ -386,7 +375,7 @@ public class CustomerServiceSupport if (customerIssueMapper.count( new Search(CustomerIssue.CUSTOMER_ID, customerId) .eq(CustomerIssue.ENABLED, true)) < 1) { - final CustomerIssue ci = new CustomerIssue(); + val ci = new CustomerIssue(); ci.setId(idSeq.get()); ci.setArtificial(false); ci.setCustomerId(customerId); @@ -404,11 +393,11 @@ public class CustomerServiceSupport log.info("User [{}] create or update customer [{}] permissions [{}].", operator, customerId, strAccounts); if (StringUtils.isNotBlank(strAccounts)) { - for (final String account : new HashSet<>( + for (val account : new HashSet<>( Arrays.asList(strAccounts.trim().split("\\s*,\\s*")))) { if (StringUtils.isNotBlank(account)) { - final CustomerPermission permOld = customerPermissionMapper.find( + val permOld = customerPermissionMapper.find( new Search(CustomerPermission.CUSTOMER_ID, customerId) .eq(CustomerPermission.USER_ACCOUNT, account)); if (permOld != null) { @@ -458,12 +447,12 @@ public class CustomerServiceSupport */ @Override public File exportCSV(final String operator) { - final File file = new File(FileUtils.getTempDirectory(), + val file = new File(FileUtils.getTempDirectory(), "Customers_" + DateFormatUtils.format(System.currentTimeMillis(), "yyyy-MM-dd_HHmmss") + ".csv"); - try (final OutputStreamWriter fileWriter = + try (val fileWriter = new OutputStreamWriter(new FileOutputStream(file), CSVUtils.GBK); - final CSVPrinter printer = EXPORT_FORMAT.print(fileWriter)) { + val printer = EXPORT_FORMAT.print(fileWriter)) { scan(512, new Search() // .setAttr("APPLICATION_NOT_NULL", true) @@ -545,12 +534,12 @@ public class CustomerServiceSupport private String joinYtdSales(final String strYears, final String strYtdSales) { if (StringUtils.isNotBlank(strYears) && StringUtils.isNotBlank(strYtdSales)) { - final String[] years = strYears.split(SPLITTER); - final String[] sales = strYtdSales.split(SPLITTER); - final List ytdSales = new ArrayList<>(years.length); + val years = strYears.split(SPLITTER); + val sales = strYtdSales.split(SPLITTER); + val ytdSales = new ArrayList<>(years.length); int i = 0; - for (final String year : years) { + for (val year : years) { ytdSales.add(year + ": " + sales[i++]); } return StringUtils.join(ytdSales, "\n"); @@ -561,4 +550,24 @@ public class CustomerServiceSupport private String dateFormat(Date date, String pattern) { return date != null ? DateFormatUtils.format(date, pattern) : ""; } + + /** + * {@inheritDoc} + */ + @Override + public Customer delete(final String id) { + val customer = super.delete(id); + Assert.state(customer != null, + "No customer [" + id + "] found"); + customerPermissionMapper.delete( + new Search(CustomerPermission.CUSTOMER_ID, id)); + customerIssueMapper.delete( + new Search(CustomerIssue.CUSTOMER_ID, id)); + customerYearToDateSaleMapper.delete( + new Search(CustomerYearToDateSale.CUSTOMER_ID, id)); + customerApplicationMapper.delete( + new Search(CustomerApplication.CUSTOMER_ID, id)); + + return customer; + } } diff --git a/server/launch.sh b/server/launch.sh new file mode 100755 index 0000000..6ff853a --- /dev/null +++ b/server/launch.sh @@ -0,0 +1,28 @@ +#!/bin/bash + +# get real path of softlink +get_real_path() { + local f="$1" + while [ -h "$f" ]; do + ls=`ls -ld "$f"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + f="$link" + else + f=`dirname "$f"`/"$link" + fi + done + echo "$f" +} + +prg_path=$(get_real_path "$0") +echo "Script path [$prg_path]" + +# Service Home +pushd $(dirname "$prg_path") +WORK_DIR=$(pwd) +echo "Work dir [$WORK_DIR]" + +mvn -T 4C clean -pl crm -am -DskipTests \ + spring-boot:run + diff --git a/server/lib/tigon b/server/lib/tigon index 7a0c14b..40acef8 160000 --- a/server/lib/tigon +++ b/server/lib/tigon @@ -1 +1 @@ -Subproject commit 7a0c14ba3f821049872595609dbf278cf410cbd5 +Subproject commit 40acef80b8af560cbf19a0a841748c0d63406dde diff --git a/server/model/pom.xml b/server/model/pom.xml index 2080bba..cc1be06 100644 --- a/server/model/pom.xml +++ b/server/model/pom.xml @@ -10,7 +10,7 @@ jar - provided + provided @@ -36,7 +36,7 @@ me.chyxion.tigon tigon-web - ${tigon.webmvc.scrope} + ${tigon.webmvc.scope} org.projectlombok @@ -67,7 +67,7 @@ war - compile + compile 8088 DEBUG ${project.basedir}/.logs diff --git a/server/model/src/main/java/com/pudonghot/ambition/crm/model/AuthFailedLog.java b/server/model/src/main/java/com/pudonghot/ambition/crm/model/AuthFailedLog.java index 0e07bb7..c8f7bba 100644 --- a/server/model/src/main/java/com/pudonghot/ambition/crm/model/AuthFailedLog.java +++ b/server/model/src/main/java/com/pudonghot/ambition/crm/model/AuthFailedLog.java @@ -4,6 +4,7 @@ import lombok.Getter; import lombok.Setter; import me.chyxion.tigon.model.M3; import me.chyxion.tigon.mybatis.Table; +import lombok.experimental.FieldNameConstants; import me.chyxion.tigon.mybatis.UseGeneratedKeys; /** @@ -15,17 +16,11 @@ import me.chyxion.tigon.mybatis.UseGeneratedKeys; @Getter @Setter @UseGeneratedKeys +@FieldNameConstants(prefix = "") @Table("crm_auth_failed_log") public class AuthFailedLog extends M3 { private static final long serialVersionUID = 1L; - // Column Names - public static final String LOGIN_ID = "login_id"; - public static final String PASSWORD = "password"; - public static final String IP = "ip"; - public static final String USER_AGENT = "user_agent"; - public static final String EXT = "ext"; - // Properties private String loginId; private String password; diff --git a/server/model/src/main/java/com/pudonghot/ambition/crm/model/AuthLog.java b/server/model/src/main/java/com/pudonghot/ambition/crm/model/AuthLog.java index c9924b3..d5de75a 100644 --- a/server/model/src/main/java/com/pudonghot/ambition/crm/model/AuthLog.java +++ b/server/model/src/main/java/com/pudonghot/ambition/crm/model/AuthLog.java @@ -4,6 +4,7 @@ import lombok.Getter; import lombok.Setter; import me.chyxion.tigon.model.M3; import me.chyxion.tigon.mybatis.Table; +import lombok.experimental.FieldNameConstants; import me.chyxion.tigon.mybatis.UseGeneratedKeys; /** @@ -16,19 +17,13 @@ import me.chyxion.tigon.mybatis.UseGeneratedKeys; @Setter @UseGeneratedKeys @Table("crm_auth_log") +@FieldNameConstants(prefix = "") public class AuthLog extends M3 { private static final long serialVersionUID = 1L; - // Column Names - public static final String USER_ID = "user_id"; - public static final String USER_AGENT = "user_agent"; - public static final String IP = "ip"; - public static final String EXT = "ext"; - // Properties private String userId; private String userAgent; private String ip; private String ext; - } diff --git a/server/model/src/main/java/com/pudonghot/ambition/crm/model/Customer.java b/server/model/src/main/java/com/pudonghot/ambition/crm/model/Customer.java index 7ccabf2..794b2ed 100644 --- a/server/model/src/main/java/com/pudonghot/ambition/crm/model/Customer.java +++ b/server/model/src/main/java/com/pudonghot/ambition/crm/model/Customer.java @@ -2,6 +2,8 @@ package com.pudonghot.ambition.crm.model; import lombok.Getter; import lombok.Setter; +import lombok.experimental.FieldNameConstants; + import java.util.Date; import me.chyxion.tigon.model.M3; import me.chyxion.tigon.mybatis.Table; @@ -16,22 +18,10 @@ import me.chyxion.tigon.mybatis.Transient; @Getter @Setter @Table("crm_customer") +@FieldNameConstants(prefix = "") public class Customer extends M3 { private static final long serialVersionUID = 1L; - // Column Names - public static final String SALESPERSON = "salesperson"; - public static final String DATE_ADDED = "date_added"; - public static final String NAME = "name"; - public static final String COUNTRY_CODE = "country_code"; - public static final String STATE = "state"; - public static final String CITY = "city"; - public static final String MS = "ms"; - public static final String REGION = "region"; - public static final String STATUS = "status"; - public static final String SUM_YTD_SALES = "sum_ytd_sales"; - public static final String COUNT_YTD_SALES = "count_ytd_sales"; - // Properties private String salesperson; private Date dateAdded; diff --git a/server/model/src/main/java/com/pudonghot/ambition/crm/model/CustomerApplication.java b/server/model/src/main/java/com/pudonghot/ambition/crm/model/CustomerApplication.java index 485c1f1..585725d 100644 --- a/server/model/src/main/java/com/pudonghot/ambition/crm/model/CustomerApplication.java +++ b/server/model/src/main/java/com/pudonghot/ambition/crm/model/CustomerApplication.java @@ -2,8 +2,9 @@ package com.pudonghot.ambition.crm.model; import lombok.Getter; import lombok.Setter; -import me.chyxion.tigon.mybatis.Table; import me.chyxion.tigon.model.M3; +import me.chyxion.tigon.mybatis.Table; +import lombok.experimental.FieldNameConstants; /** * @version 0.0.1 @@ -13,14 +14,11 @@ import me.chyxion.tigon.model.M3; */ @Getter @Setter +@FieldNameConstants(prefix = "") @Table("crm_customer_application") public class CustomerApplication extends M3 { private static final long serialVersionUID = 1L; - // Column Names - public static final String CUSTOMER_ID = "customer_id"; - public static final String APPLICATION_ID = "application_id"; - // Properties private String customerId; private String applicationId; diff --git a/server/model/src/main/java/com/pudonghot/ambition/crm/model/CustomerIssue.java b/server/model/src/main/java/com/pudonghot/ambition/crm/model/CustomerIssue.java index f4cc23e..902d43c 100644 --- a/server/model/src/main/java/com/pudonghot/ambition/crm/model/CustomerIssue.java +++ b/server/model/src/main/java/com/pudonghot/ambition/crm/model/CustomerIssue.java @@ -4,6 +4,7 @@ import lombok.Getter; import lombok.Setter; import me.chyxion.tigon.model.M3; import me.chyxion.tigon.mybatis.Table; +import lombok.experimental.FieldNameConstants; /** * @version 0.0.1 @@ -13,15 +14,11 @@ import me.chyxion.tigon.mybatis.Table; */ @Getter @Setter +@FieldNameConstants(prefix = "") @Table("crm_customer_issue") public class CustomerIssue extends M3 { private static final long serialVersionUID = 1L; - // Column Names - public static final String CUSTOMER_ID = "customer_id"; - public static final String ISSUE = "issue"; - public static final String ARTIFICIAL = "artificial"; - // Properties private String customerId; private String issue; diff --git a/server/model/src/main/java/com/pudonghot/ambition/crm/model/CustomerPermission.java b/server/model/src/main/java/com/pudonghot/ambition/crm/model/CustomerPermission.java index 3b60a0c..cf4d190 100644 --- a/server/model/src/main/java/com/pudonghot/ambition/crm/model/CustomerPermission.java +++ b/server/model/src/main/java/com/pudonghot/ambition/crm/model/CustomerPermission.java @@ -4,6 +4,7 @@ import lombok.Getter; import lombok.Setter; import me.chyxion.tigon.model.M3; import me.chyxion.tigon.mybatis.Table; +import lombok.experimental.FieldNameConstants; /** * @version 0.0.1 @@ -13,15 +14,11 @@ import me.chyxion.tigon.mybatis.Table; */ @Getter @Setter +@FieldNameConstants(prefix = "") @Table("crm_customer_permission") public class CustomerPermission extends M3 { private static final long serialVersionUID = 1L; - // Column Names - public static final String USER_ACCOUNT = "user_account"; - public static final String CUSTOMER_ID = "customer_id"; - public static final String TYPE = "type"; - public enum Type { SYSTEM, APPLICATION diff --git a/server/model/src/main/java/com/pudonghot/ambition/crm/model/CustomerProperty.java b/server/model/src/main/java/com/pudonghot/ambition/crm/model/CustomerProperty.java index c268463..ca715fc 100644 --- a/server/model/src/main/java/com/pudonghot/ambition/crm/model/CustomerProperty.java +++ b/server/model/src/main/java/com/pudonghot/ambition/crm/model/CustomerProperty.java @@ -5,6 +5,7 @@ import lombok.Setter; import me.chyxion.tigon.model.M3; import me.chyxion.tigon.mybatis.Table; import me.chyxion.tigon.mybatis.NotUpdate; +import lombok.experimental.FieldNameConstants; import me.chyxion.tigon.mybatis.NotUpdateWhenNull; /** @@ -15,6 +16,7 @@ import me.chyxion.tigon.mybatis.NotUpdateWhenNull; */ @Getter @Setter +@FieldNameConstants(prefix = "") @Table("crm_customer_property") public class CustomerProperty extends M3 { private static final long serialVersionUID = 1L; @@ -24,8 +26,7 @@ public class CustomerProperty extends M3 { */ // public static final String TYPE_STATUS = "STATUS"; public enum Type { - STATUS, - // APPLICATION, + STATUS } // system status @@ -38,11 +39,6 @@ public class CustomerProperty extends M3 { public static final String STATUS_NA_ID = "STATUS_NA"; public static final String STATUS_NA_NAME = "NA"; - // Column Names - public static final String TYPE = "type"; - public static final String NAME = "name"; - public static final String SORT = "sort"; - // Properties @NotUpdate private Type type; diff --git a/server/model/src/main/java/com/pudonghot/ambition/crm/model/CustomerYearToDateSale.java b/server/model/src/main/java/com/pudonghot/ambition/crm/model/CustomerYearToDateSale.java index 6720d10..8b2e64a 100644 --- a/server/model/src/main/java/com/pudonghot/ambition/crm/model/CustomerYearToDateSale.java +++ b/server/model/src/main/java/com/pudonghot/ambition/crm/model/CustomerYearToDateSale.java @@ -4,6 +4,7 @@ import lombok.Getter; import lombok.Setter; import me.chyxion.tigon.model.M3; import me.chyxion.tigon.mybatis.Table; +import lombok.experimental.FieldNameConstants; /** * @version 0.0.1 @@ -13,15 +14,11 @@ import me.chyxion.tigon.mybatis.Table; */ @Getter @Setter +@FieldNameConstants(prefix = "") @Table("crm_customer_year_to_date_sale") public class CustomerYearToDateSale extends M3 { private static final long serialVersionUID = 1L; - // Column Names - public static final String CUSTOMER_ID = "customer_id"; - public static final String YEAR = "year"; - public static final String YTD_SALE = "ytd_sale"; - // Properties private String customerId; private String year; diff --git a/server/model/src/main/java/com/pudonghot/ambition/crm/model/FileInfo.java b/server/model/src/main/java/com/pudonghot/ambition/crm/model/FileInfo.java index e1f779b..c2d2845 100644 --- a/server/model/src/main/java/com/pudonghot/ambition/crm/model/FileInfo.java +++ b/server/model/src/main/java/com/pudonghot/ambition/crm/model/FileInfo.java @@ -5,6 +5,7 @@ import lombok.Setter; import me.chyxion.tigon.model.M3; import me.chyxion.tigon.mybatis.Table; import me.chyxion.tigon.mybatis.Transient; +import lombok.experimental.FieldNameConstants; /** * @version 0.0.1 @@ -16,17 +17,10 @@ import me.chyxion.tigon.mybatis.Transient; @Getter @Setter @Table("crm_file_info") +@FieldNameConstants(prefix = "") public class FileInfo extends M3 { private static final long serialVersionUID = 1L; - // Column Names - public static final String NAME = "name"; - public static final String FILE_PATH = "file_path"; - public static final String FORMAT = "format"; - public static final String DOWNLOAD_NAME = "download_name"; - public static final String CONTENT_LENGTH = "content_length"; - public static final String CONTENT_TYPE = "content_type"; - // Properties private String name; private String filePath; diff --git a/server/model/src/main/java/com/pudonghot/ambition/crm/model/HomePage.java b/server/model/src/main/java/com/pudonghot/ambition/crm/model/HomePage.java index ef483ed..f53c787 100644 --- a/server/model/src/main/java/com/pudonghot/ambition/crm/model/HomePage.java +++ b/server/model/src/main/java/com/pudonghot/ambition/crm/model/HomePage.java @@ -4,6 +4,7 @@ import lombok.Getter; import lombok.Setter; import me.chyxion.tigon.model.M3; import me.chyxion.tigon.mybatis.Table; +import lombok.experimental.FieldNameConstants; /** * @version 0.0.1 @@ -14,14 +15,10 @@ import me.chyxion.tigon.mybatis.Table; @Getter @Setter @Table("crm_home_page") +@FieldNameConstants(prefix = "") public class HomePage extends M3 { private static final long serialVersionUID = 1L; - // Column Names - public static final String NAME = "name"; - public static final String CONTENT = "content"; - public static final String APPLYING = "applying"; - // Properties private String name; private String content; diff --git a/server/model/src/main/java/com/pudonghot/ambition/crm/model/ImportRecord.java b/server/model/src/main/java/com/pudonghot/ambition/crm/model/ImportRecord.java index 92c9b5b..15c4dc9 100644 --- a/server/model/src/main/java/com/pudonghot/ambition/crm/model/ImportRecord.java +++ b/server/model/src/main/java/com/pudonghot/ambition/crm/model/ImportRecord.java @@ -6,6 +6,7 @@ import me.chyxion.tigon.model.M3; import me.chyxion.tigon.mybatis.Table; import me.chyxion.tigon.mybatis.NotUpdate; import me.chyxion.tigon.mybatis.Transient; +import lombok.experimental.FieldNameConstants; /** * @author Shaun Chyxion
@@ -15,6 +16,7 @@ import me.chyxion.tigon.mybatis.Transient; @Getter @Setter @Table("crm_import_record") +@FieldNameConstants(prefix = "") public class ImportRecord extends M3 { private static final long serialVersionUID = 1L; @@ -22,11 +24,6 @@ public class ImportRecord extends M3 { public static final String TYPE_CUSTOMER = "CUSTOMER"; public static final String TYPE_YTD_SALES = "YTD_SALES"; - // Column Names - public static final String TYPE = "type"; - public static final String COMPLETED = "completed"; - public static final String SUCCESS = "success"; - // Properties @NotUpdate private String type; diff --git a/server/model/src/main/java/com/pudonghot/ambition/crm/model/User.java b/server/model/src/main/java/com/pudonghot/ambition/crm/model/User.java index da9012b..972f810 100644 --- a/server/model/src/main/java/com/pudonghot/ambition/crm/model/User.java +++ b/server/model/src/main/java/com/pudonghot/ambition/crm/model/User.java @@ -5,6 +5,7 @@ import lombok.Setter; import me.chyxion.tigon.model.M3; import me.chyxion.tigon.mybatis.Table; import me.chyxion.tigon.mybatis.NotUpdate; +import lombok.experimental.FieldNameConstants; import com.alibaba.fastjson.annotation.JSONField; import me.chyxion.tigon.mybatis.NotUpdateWhenNull; @@ -17,6 +18,7 @@ import me.chyxion.tigon.mybatis.NotUpdateWhenNull; @Getter @Setter @Table("crm_user") +@FieldNameConstants(prefix = "") public class User extends M3 { private static final long serialVersionUID = 1L; @@ -25,17 +27,6 @@ public class User extends M3 { public static final String ROLE_LELI = "leli"; public static final String ROLE_CHYXION = "chyxion"; - // Column Names - public static final String ACCOUNT = "account"; - public static final String EMPLOYEE_ID = "employee_id"; - public static final String PASSWORD = "password"; - public static final String MOBILE = "mobile"; - public static final String EMAIL = "email"; - public static final String NAME = "name"; - public static final String EN_NAME = "en_name"; - public static final String GENDER = "gender"; - public static final String ADMIN = "admin"; - // Properties private String account; @NotUpdate diff --git a/server/model/src/main/java/com/pudonghot/ambition/crm/model/WeekGoal.java b/server/model/src/main/java/com/pudonghot/ambition/crm/model/WeekGoal.java index 17f11d8..dbd883d 100644 --- a/server/model/src/main/java/com/pudonghot/ambition/crm/model/WeekGoal.java +++ b/server/model/src/main/java/com/pudonghot/ambition/crm/model/WeekGoal.java @@ -2,6 +2,8 @@ package com.pudonghot.ambition.crm.model; import lombok.Getter; import lombok.Setter; +import lombok.experimental.FieldNameConstants; + import java.util.Date; import me.chyxion.tigon.model.M3; import me.chyxion.tigon.mybatis.Table; @@ -16,20 +18,10 @@ import me.chyxion.tigon.mybatis.Transient; @Getter @Setter @Table("crm_week_goal") +@FieldNameConstants(prefix = "") public class WeekGoal extends M3 { private static final long serialVersionUID = 1L; - // Column Names - public static final String USER_ID = "user_id"; - public static final String YEAR = "year"; - public static final String QUARTER = "quarter"; - public static final String DATE_START = "date_start"; - public static final String DATE_END = "date_end"; - public static final String MONTH_START = "month_start"; - public static final String MONTH_END = "month_end"; - public static final String GOAL = "goal"; - public static final String DONE = "done"; - // Properties @NotUpdate private String userId; diff --git a/server/pom.xml b/server/pom.xml index 0e957cf..017bbd9 100644 --- a/server/pom.xml +++ b/server/pom.xml @@ -16,8 +16,10 @@ 1.8 1.8 utf-8 - 0.0.1-SNAPSHOT + + + 2.0.3.RELEASE 1.8.10
@@ -54,6 +56,11 @@ + + org.projectlombok + lombok + 1.18.2 + com.pudonghot.ambition crm-model @@ -170,6 +177,13 @@ org.apache.maven.plugins maven-dependency-plugin + + org.springframework.boot + spring-boot-maven-plugin + + true + + @@ -179,8 +193,14 @@ ${spring-boot.version} true - ${start-class} ZIP + true + + + org.projectlombok + lombok + + diff --git a/web/app/templates/components/delete-btn.hbs b/web/app/templates/components/delete-btn.hbs index 3494592..5430e3c 100644 --- a/web/app/templates/components/delete-btn.hbs +++ b/web/app/templates/components/delete-btn.hbs @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/web/app/templates/components/form-input-select2.hbs b/web/app/templates/components/form-input-select2.hbs index 212e2ef..cdbfbab 100644 --- a/web/app/templates/components/form-input-select2.hbs +++ b/web/app/templates/components/form-input-select2.hbs @@ -1,7 +1,7 @@
-
+