diff --git a/ssjygl-xsx-common/src/main/java/com/cowr/model/SupermarketCustomerDistance.java b/ssjygl-xsx-common/src/main/java/com/cowr/model/SupermarketCustomerDistance.java new file mode 100644 index 0000000..4851f36 --- /dev/null +++ b/ssjygl-xsx-common/src/main/java/com/cowr/model/SupermarketCustomerDistance.java @@ -0,0 +1,14 @@ +package com.cowr.model; + +import com.cowr.model.base.BaseSupermarketCustomerDistance; + +/** + * Generated by COWR Tue Aug 25 17:27:08 CST 2020 + * TableName: supermarket_customer_distance + * Remarks: 基础配置 - 超市到客户的距离 + * PrimaryKey: supermarket_id,customer_id + */ +@SuppressWarnings("serial") +public class SupermarketCustomerDistance extends BaseSupermarketCustomerDistance { + public static final SupermarketCustomerDistance dao = new SupermarketCustomerDistance().dao(); +} diff --git a/ssjygl-xsx-common/src/main/java/com/cowr/model/_MappingKit.java b/ssjygl-xsx-common/src/main/java/com/cowr/model/_MappingKit.java index 6b0c2cb..5b1fe65 100644 --- a/ssjygl-xsx-common/src/main/java/com/cowr/model/_MappingKit.java +++ b/ssjygl-xsx-common/src/main/java/com/cowr/model/_MappingKit.java @@ -25,6 +25,8 @@ public class _MappingKit { arp.addMapping("product", "id", Product.class); // Composite Primary Key order: supermarket_id,customer_receiver_id arp.addMapping("supermarket_receiver_distance", "supermarket_id,customer_receiver_id", SupermarketReceiverDistance.class); + // Composite Primary Key order: supermarket_id,customer_id + arp.addMapping("supermarket_customer_distance", "supermarket_id,customer_id", SupermarketCustomerDistance.class); arp.addMapping("transport_company", "id", TransportCompany.class); // Composite Primary Key order: supermarket_id,sandfarm_id arp.addMapping("supermarket_sandfarm_distance", "supermarket_id,sandfarm_id", SupermarketSandfarmDistance.class); diff --git a/ssjygl-xsx-common/src/main/java/com/cowr/model/base/BaseSupermarketCustomerDistance.java b/ssjygl-xsx-common/src/main/java/com/cowr/model/base/BaseSupermarketCustomerDistance.java new file mode 100644 index 0000000..42f8705 --- /dev/null +++ b/ssjygl-xsx-common/src/main/java/com/cowr/model/base/BaseSupermarketCustomerDistance.java @@ -0,0 +1,90 @@ +package com.cowr.model.base; + +import com.cowr.common.base.BaseModel; +import com.jfinal.plugin.activerecord.IBean; +import com.alibaba.fastjson.annotation.JSONField; + +/** + * Generated by COWR Tue Aug 25 17:27:08 CST 2020 + * TableName: supermarket_customer_distance + * Remarks: 基础配置 - 超市到客户的距离 + * PrimaryKey: supermarket_id,customer_id + */ +@SuppressWarnings("serial") +public abstract class BaseSupermarketCustomerDistance> extends BaseModel implements IBean { + + public static final String tablename = "supermarket_customer_distance"; + + @JSONField(serialize=false) + public String getTablename(){ + return tablename; + } + + /** + * name: supermarket_id + * type: INT(10) + * isNullable: NO + * isPrimaryKey: YES + * defaultValue: + * @param supermarketId 超市id + */ + @JSONField(name="supermarket_id") + public void setSupermarketId(Integer supermarketId) { + set("supermarket_id", supermarketId); + } + + + /** + * @return supermarket_id 超市id + */ + @JSONField(name="supermarket_id") + public Integer getSupermarketId() { + return getInt("supermarket_id"); + } + + /** + * name: customer_id + * type: INT(10) + * isNullable: NO + * isPrimaryKey: YES + * defaultValue: + * @param customerId 客户收获地址id + */ + @JSONField(name="customer_id") + public void setCustomerId(Integer customerId) { + set("customer_id", customerId); + } + + + /** + * @return customer_id 客户收获地址id + */ + @JSONField(name="customer_id") + public Integer getCustomerId() { + return getInt("customer_id"); + } + + /** + * name: distance + * type: DECIMAL(12,2) + * isNullable: YES + * isPrimaryKey: NO + * defaultValue: + * @param distance 运距 + */ + @JSONField(name="distance") + public void setDistance(java.math.BigDecimal distance) { + set("distance", distance); + } + + + /** + * @return distance 运距 + */ + @JSONField(name="distance") + public java.math.BigDecimal getDistance() { + return get("distance"); + } + + +} diff --git a/ssjygl-xsx-common/src/main/java/com/cowr/ssjygl/customer/CustomerValidator.java b/ssjygl-xsx-common/src/main/java/com/cowr/ssjygl/customer/CustomerValidator.java index b1b5c31..7f16ade 100644 --- a/ssjygl-xsx-common/src/main/java/com/cowr/ssjygl/customer/CustomerValidator.java +++ b/ssjygl-xsx-common/src/main/java/com/cowr/ssjygl/customer/CustomerValidator.java @@ -42,9 +42,12 @@ public class CustomerValidator extends CrudParamValidator { } validateString("memo", 0, 256, "memo", "memo 长度 0~256"); - validateString("receiver_name", 1, 128, "receiver_name", "receiver_name 长度 1~128"); - validateString("receiver_address", 1, 256, "receiver_address", "receiver_address 长度 0~256"); - validateRegex("receiver_phone", StrUtil.regphone, "receiver_phone", "receiver_phone 必须为手机号格式"); + validateString("receiver_name", 0, 128, "receiver_name", "receiver_name 长度 1~128"); + validateString("receiver_address", 0, 256, "receiver_address", "receiver_address 长度 0~256"); + + if (StrKit.notBlank(c.get("receiver_phone"))) { + validateRegex("receiver_phone", StrUtil.regphone, "receiver_phone", "receiver_phone 必须为手机号格式"); + } // 使用 model 更新时,model 不能只有主键有值 // 这里用 getActionMethodName 写死,判断是 update 时,才做验证 diff --git a/ssjygl-xsx-common/src/main/java/com/cowr/ssjygl/supermarket/customerdistance/SupermarketCustomerDistancePKValidator.java b/ssjygl-xsx-common/src/main/java/com/cowr/ssjygl/supermarket/customerdistance/SupermarketCustomerDistancePKValidator.java new file mode 100644 index 0000000..7ed4ed8 --- /dev/null +++ b/ssjygl-xsx-common/src/main/java/com/cowr/ssjygl/supermarket/customerdistance/SupermarketCustomerDistancePKValidator.java @@ -0,0 +1,26 @@ +package com.cowr.ssjygl.supermarket.customerdistance; + + +import com.cowr.common.validator.CrudParamValidator; +import com.cowr.common.view.Result; +import com.jfinal.core.Controller; + +/** + * Generated by COWR Tue Aug 25 17:27:14 CST 2020 + * TableName: supermarket_customer_distance + * Remarks: 基础配置 - 超市到客户的距离 + * PrimaryKey: supermarket_id,customer_id + */ +public class SupermarketCustomerDistancePKValidator extends CrudParamValidator { + @Override + protected void validate(Controller c) { + validateRequired("supermarket_id", "supermarket_id", "supermarket_id 必填"); + validateInteger("supermarket_id", 1, 2147483647, "supermarket_id", "supermarket_id 范围 1~2147483647"); + validateRequired("customer_id", "customer_id", "customer_id 必填"); + validateInteger("customer_id", 1, 2147483647, "customer_id", "customer_id 范围 1~2147483647"); + } + + protected void handleError(Controller c) { + c.renderJson(Result.failed(getErrmsg())); + } +} \ No newline at end of file diff --git a/ssjygl-xsx-common/src/main/java/com/cowr/ssjygl/supermarket/customerdistance/SupermarketCustomerDistanceService.java b/ssjygl-xsx-common/src/main/java/com/cowr/ssjygl/supermarket/customerdistance/SupermarketCustomerDistanceService.java new file mode 100644 index 0000000..9362b29 --- /dev/null +++ b/ssjygl-xsx-common/src/main/java/com/cowr/ssjygl/supermarket/customerdistance/SupermarketCustomerDistanceService.java @@ -0,0 +1,104 @@ +package com.cowr.ssjygl.supermarket.customerdistance; + +import com.cowr.common.base.BaseService; +import com.cowr.common.view.PageParam; +import com.cowr.model.Supermarket; +import com.jfinal.kit.StrKit; +import com.jfinal.log.Log; +import com.jfinal.plugin.activerecord.Db; +import com.jfinal.plugin.activerecord.Page; +import com.jfinal.plugin.activerecord.Record; + +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.List; + +/** + * Generated by COWR Tue Aug 25 17:27:14 CST 2020 + * TableName: supermarket_customer_distance + * Remarks: 基础配置 - 超市到客户的距离 + * PrimaryKey: supermarket_id,customer_id + */ +public class SupermarketCustomerDistanceService extends BaseService { + public static final SupermarketCustomerDistanceService me = new SupermarketCustomerDistanceService(); + private static Log log = Log.getLog(SupermarketCustomerDistanceService.class); + + public BigDecimal getDistance(Integer supermarket_id, Integer customer_id) { + try { + BigDecimal dis = Db.queryBigDecimal("select distance from supermarket_customer_distance " + + " where supermarket_id = ? and customer_id = ?", supermarket_id, customer_id); + + if (dis == null) { + return new BigDecimal(0); + } + + return dis; + } catch (Exception e) { + log.error(e.getMessage(), e); + + return new BigDecimal(0); + } + } + + /** + * 列出所砂站的 + * + * @param pp + * @param customer_id + * @return + */ + public Record findAllSupermarket(PageParam pp, Integer customer_id, String customer_name) { + List cols = Supermarket.dao.find("select id, name, name2 from supermarket where del = 0"); + String selectsql = "select t.*, sr.supermarket_id, sr.distance "; + String fromsql = " from customer t\n" + + " left join (\n" + + " select a.customer_id, group_concat(a.supermarket_id) supermarket_id, group_concat(a.distance) distance " + + " from supermarket_customer_distance a\n" + + " group by a.customer_id\n" + + " ) sr on sr.customer_id = t.id \n" + + " where 1=1 "; + List paraList = new ArrayList<>(); + + if (customer_id != null) { + fromsql += " and t.id = ? \n"; + paraList.add(customer_id); + } + + if (StrKit.notBlank(customer_name)) { + fromsql += " and t.name like ? \n"; + paraList.add("%" + customer_name + "%"); + } + + String totalRowSql = "select count(*) " + fromsql; + String findSql = selectsql + fromsql; + + Page page = Db.paginateByFullSql(pp.getPage(), pp.getSize(), totalRowSql, findSql, paraList.toArray()); + List list = page.getList(); + + for (Record record : list) { + if (record.get("supermarket_id") != null) { + String supermarket_arr = record.getStr("supermarket_id"); + String distance_arr = record.getStr("distance"); + + String[] sups = supermarket_arr.split(","); + String[] diss = distance_arr.split(","); + + if (sups.length != diss.length) { + log.error("findAllSupermarket 数据错误"); + continue; + } + + for (int i = 0; i < sups.length; i++) { + String id = sups[i]; + record.set("supermarket_id_" + id, diss[i]); + } + } + } + + Record out = new Record(); + out.set("cols", cols); + out.set("page", page); + + return out; + } +} diff --git a/ssjygl-xsx-common/src/main/java/com/cowr/ssjygl/supermarket/customerdistance/SupermarketCustomerDistanceValidator.java b/ssjygl-xsx-common/src/main/java/com/cowr/ssjygl/supermarket/customerdistance/SupermarketCustomerDistanceValidator.java new file mode 100644 index 0000000..8c87edd --- /dev/null +++ b/ssjygl-xsx-common/src/main/java/com/cowr/ssjygl/supermarket/customerdistance/SupermarketCustomerDistanceValidator.java @@ -0,0 +1,34 @@ +package com.cowr.ssjygl.supermarket.customerdistance; + +import com.jfinal.core.Controller; +import com.cowr.common.validator.CrudParamValidator; +import com.cowr.common.view.Result; +import com.cowr.model.SupermarketCustomerDistance; + +/** + * Generated by COWR Tue Aug 25 17:27:14 CST 2020 + * TableName: supermarket_customer_distance + * Remarks: 基础配置 - 超市到客户的距离 + * PrimaryKey: supermarket_id,customer_id + */ +public class SupermarketCustomerDistanceValidator extends CrudParamValidator { + @Override + protected void validate(Controller c) { + validateRequired("supermarket_id", "supermarket_id", "supermarket_id 必填"); + validateInteger("supermarket_id", 1, 2147483647, "supermarket_id", "supermarket_id 范围 1~2147483647"); + validateRequired("customer_id", "customer_id", "customer_id 必填"); + validateInteger("customer_id", 1, 2147483647, "customer_id", "customer_id 范围 1~2147483647"); + validateBigDecimal("distance", new java.math.BigDecimal(0), new java.math.BigDecimal(9.9999999999E10), "distance", "distance 范围 0~9.9999999999E10"); + + // 使用 model 更新时,model 不能只有主键有值 + // 这里用 getActionMethodName 写死,判断是 update 时,才做验证 + // 如果确实是需要将主键外的字段置为 null,可以在代码生成后删掉这段 + if ("edit".equals(getActionMethodName())) { + validateUpdateModel(SupermarketCustomerDistance.class, "", true); // 忽略不在model中的字段 + } + } + + protected void handleError(Controller c) { + c.renderJson(Result.failed(getErrmsg())); + } +} \ No newline at end of file diff --git a/ssjygl-xsx-common/src/main/java/generator/Main.java b/ssjygl-xsx-common/src/main/java/generator/Main.java index 20fd47b..acde8d5 100644 --- a/ssjygl-xsx-common/src/main/java/generator/Main.java +++ b/ssjygl-xsx-common/src/main/java/generator/Main.java @@ -30,6 +30,7 @@ public class Main { "customer", "customer_receiver", "supermarket_receiver_distance", + "supermarket_customer_distance", "customer_contact", "prepay_customer", "prepay_detail", diff --git a/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/main/Config.java b/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/main/Config.java index de20fa6..30340e1 100644 --- a/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/main/Config.java +++ b/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/main/Config.java @@ -32,6 +32,7 @@ import com.cowr.local.ssjygl.product.ProductController; import com.cowr.local.ssjygl.purchase.PurchaseController; import com.cowr.local.ssjygl.sandfarm.SandfarmController; import com.cowr.local.ssjygl.supermarket.SupermarketController; +import com.cowr.local.ssjygl.supermarket.customerdistance.SupermarketCustomerDistanceController; import com.cowr.local.ssjygl.supermarket.receiverdistance.SupermarketReceiverDistanceController; import com.cowr.local.ssjygl.supermarket.sandfarmdistance.SupermarketSandfarmDistanceController; import com.cowr.local.ssjygl.supermarket.stock.StockController; @@ -169,6 +170,7 @@ public class Config extends JFinalConfig { me.add("/supermarket", SupermarketController.class); me.add("/supermarket/ssd", SupermarketSandfarmDistanceController.class); me.add("/supermarket/srd", SupermarketReceiverDistanceController.class); + me.add("/supermarket/scd", SupermarketCustomerDistanceController.class); me.add("/purchase", PurchaseController.class); me.add("/product", ProductController.class); me.add("/stock", StockController.class); diff --git a/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/supermarket/customerdistance/SupermarketCustomerDistanceController.java b/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/supermarket/customerdistance/SupermarketCustomerDistanceController.java new file mode 100644 index 0000000..a5869e4 --- /dev/null +++ b/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/supermarket/customerdistance/SupermarketCustomerDistanceController.java @@ -0,0 +1,21 @@ +package com.cowr.local.ssjygl.supermarket.customerdistance; + +import com.cowr.common.view.PageParam; +import com.cowr.common.view.Result; +import com.cowr.ssjygl.supermarket.customerdistance.SupermarketCustomerDistanceService; +import com.jfinal.core.Controller; + +public class SupermarketCustomerDistanceController extends Controller { + public void get(){ + Integer customer_id = getInt("customer_id"); + Integer supermarket_id = getInt("supermarket_id"); + renderJson(Result.success(SupermarketCustomerDistanceService.me.getDistance(supermarket_id, customer_id))); + } + + public void findAllSupermarket() { + PageParam pp = getBean(PageParam.class, "", true); + Integer customer_id = getInt("customer_id"); + String customer_name = get("customer_name"); + renderJson(Result.object(SupermarketCustomerDistanceService.me.findAllSupermarket(pp, customer_id, customer_name))); + } +} diff --git a/ssjygl-xsx-service/src/main/java/com/cowr/service/ssjygl/customer/CustomerSyncService.java b/ssjygl-xsx-service/src/main/java/com/cowr/service/ssjygl/customer/CustomerSyncService.java index 52e65c1..ccbf4a0 100644 --- a/ssjygl-xsx-service/src/main/java/com/cowr/service/ssjygl/customer/CustomerSyncService.java +++ b/ssjygl-xsx-service/src/main/java/com/cowr/service/ssjygl/customer/CustomerSyncService.java @@ -1,6 +1,5 @@ package com.cowr.service.ssjygl.customer; -import com.cowr.common.base.BaseModel; import com.cowr.common.enums.Enums; import com.cowr.common.view.Result; import com.cowr.model.Customer; @@ -10,6 +9,7 @@ import com.cowr.model.Sysuser; import com.cowr.service.ssjygl.base.BaseSyncService; import com.cowr.service.ssjygl.synctask.SyncTaskService; import com.cowr.ssjygl.modifylog.ModifyLogService; +import com.jfinal.kit.StrKit; import com.jfinal.log.Log; import com.jfinal.plugin.activerecord.Db; import com.jfinal.plugin.activerecord.IAtom; @@ -43,21 +43,29 @@ public class CustomerSyncService extends BaseSyncService { if (!ret) { return false; } - - CustomerReceiver receiver = new CustomerReceiver(); - receiver.setCustomerId(model.getId()); - receiver.setName(receiver_name); - receiver.setPhone(receiver_phone); - receiver.setAddress(receiver_address); - SyncTask synctask = new SyncTask(); - synctask.addSaveData(model); - synctask.addSaveData(receiver); - return receiver.save() - && SyncTaskService.me.save(synctask) - && ModifyLogService.me.save(model, null, Enums.DataOpType.SAVE.getId(), sysuser) - && ModifyLogService.me.save(receiver, null, Enums.DataOpType.SAVE.getId(), sysuser); + if(StrKit.notBlank(receiver_name, receiver_phone, receiver_address)){ + CustomerReceiver receiver = new CustomerReceiver(); + receiver.setCustomerId(model.getId()); + receiver.setName(receiver_name); + receiver.setPhone(receiver_phone); + receiver.setAddress(receiver_address); + + synctask.addSaveData(receiver); + + ret = receiver.save() + && ModifyLogService.me.save(receiver, null, Enums.DataOpType.SAVE.getId(), sysuser); + + if(!ret){ + return false; + } + } + + synctask.addSaveData(model); + + return SyncTaskService.me.save(synctask) + && ModifyLogService.me.save(model, null, Enums.DataOpType.SAVE.getId(), sysuser); } catch (Exception e) { log.error(e.getMessage(), e); return false; @@ -133,32 +141,37 @@ public class CustomerSyncService extends BaseSyncService { return false; } - CustomerReceiver receiver = CustomerReceiver.dao.findFirst( - "select * from customer_receiver t where t.customer_id = ? limit 1", model.getId()); - SyncTask synctask = new SyncTask(); synctask.addUpdateData(model); - if (receiver == null) { - receiver = new CustomerReceiver(); - receiver.setCustomerId(model.getId()); - receiver.setName(receiver_name); - receiver.setPhone(receiver_phone); - receiver.setAddress(receiver_address); - synctask.addSaveData(receiver); + if(StrKit.notBlank(receiver_name, receiver_phone, receiver_address)) { + CustomerReceiver receiver = CustomerReceiver.dao.findFirst( + "select * from customer_receiver t where t.customer_id = ? limit 1", model.getId()); - ret = receiver.save(); - } else { - receiver.setName(receiver_name); - receiver.setPhone(receiver_phone); - receiver.setAddress(receiver_address); - synctask.addUpdateData(receiver); + if (receiver == null) { + receiver = new CustomerReceiver(); + receiver.setCustomerId(model.getId()); + receiver.setName(receiver_name); + receiver.setPhone(receiver_phone); + receiver.setAddress(receiver_address); + synctask.addSaveData(receiver); - ret = receiver.update(); - } + ret = receiver.save() + && ModifyLogService.me.save(receiver, null, Enums.DataOpType.SAVE.getId(), sysuser); + } else { + CustomerReceiver oldreceiver = receiver.clone(); + receiver.setName(receiver_name); + receiver.setPhone(receiver_phone); + receiver.setAddress(receiver_address); + synctask.addUpdateData(receiver); - if (!ret) { - return false; + ret = receiver.update() + && ModifyLogService.me.save(receiver, oldreceiver, Enums.DataOpType.UPDATE.getId(), sysuser); + } + + if (!ret) { + return false; + } } return SyncTaskService.me.save(new SyncTask().addUpdateData(oldobj)) diff --git a/ssjygl-xsx-service/src/main/java/com/cowr/service/ssjygl/main/Config.java b/ssjygl-xsx-service/src/main/java/com/cowr/service/ssjygl/main/Config.java index 7bb46b4..7c66a4f 100644 --- a/ssjygl-xsx-service/src/main/java/com/cowr/service/ssjygl/main/Config.java +++ b/ssjygl-xsx-service/src/main/java/com/cowr/service/ssjygl/main/Config.java @@ -28,6 +28,7 @@ import com.cowr.service.ssjygl.purchase.PurchaseController; import com.cowr.service.ssjygl.sandfarm.SandfarmController; import com.cowr.service.ssjygl.supermarket.SupermarketController; import com.cowr.service.ssjygl.supermarket.SupermarketSyncService; +import com.cowr.service.ssjygl.supermarket.customerdistance.SupermarketCustomerDistanceController; import com.cowr.service.ssjygl.supermarket.receiverdistance.SupermarketReceiverDistanceController; import com.cowr.service.ssjygl.supermarket.sandfarmdistance.SupermarketSandfarmDistanceController; import com.cowr.service.ssjygl.supermarket.stock.StockController; @@ -139,6 +140,7 @@ public class Config extends JFinalConfig { me.add("/supermarket", SupermarketController.class); me.add("/supermarket/ssd", SupermarketSandfarmDistanceController.class); me.add("/supermarket/srd", SupermarketReceiverDistanceController.class); + me.add("/supermarket/scd", SupermarketCustomerDistanceController.class); me.add("/purchase", PurchaseController.class); me.add("/product", ProductController.class); me.add("/stock", StockController.class); diff --git a/ssjygl-xsx-service/src/main/java/com/cowr/service/ssjygl/supermarket/customerdistance/SupermarketCustomerDistanceController.java b/ssjygl-xsx-service/src/main/java/com/cowr/service/ssjygl/supermarket/customerdistance/SupermarketCustomerDistanceController.java new file mode 100644 index 0000000..05ea2ad --- /dev/null +++ b/ssjygl-xsx-service/src/main/java/com/cowr/service/ssjygl/supermarket/customerdistance/SupermarketCustomerDistanceController.java @@ -0,0 +1,66 @@ +package com.cowr.service.ssjygl.supermarket.customerdistance; + +import com.cowr.common.base.BaseController; +import com.cowr.common.view.PageParam; +import com.cowr.common.view.Result; +import com.cowr.model.Sysuser; +import com.cowr.service.ssjygl.system.sysuser.SysuserSyncService; +import com.cowr.ssjygl.supermarket.customerdistance.SupermarketCustomerDistanceService; +import com.cowr.ssjygl.supermarket.customerdistance.SupermarketCustomerDistanceValidator; +import com.jfinal.aop.Before; + +public class SupermarketCustomerDistanceController extends BaseController { + public void get(){ + Integer customer_id = getInt("customer_id"); + Integer supermarket_id = getInt("supermarket_id"); + renderJson(Result.success(SupermarketCustomerDistanceService.me.getDistance(supermarket_id, customer_id))); + } + + public void findAllSupermarket() { + PageParam pp = getBean(PageParam.class, "", true); + Integer customer_id = getInt("customer_id"); + String customer_name = get("customer_name"); + renderJson(Result.object(SupermarketCustomerDistanceService.me.findAllSupermarket(pp, customer_id, customer_name))); + } + + + /** + * 新增 supermarket_receiver_distance 客户收获地址到每个砂站的距离 + */ + @Before(SupermarketCustomerDistanceValidator.class) + public void save(){ + Sysuser tokenuser = SysuserSyncService.me.getSysuserByToken(get("token")); + + if (tokenuser == null) { + renderJson(Result.noauth()); + return; + } + + int customer_id = getInt("customer_id"); + int supermarket_id = getInt("supermarket_id"); + double distance = getParaToDouble("distance"); + + renderJson(SupermarketCustomerDistanceSyncService.me.save(customer_id, supermarket_id, distance, tokenuser)); + } + + + + /** + * 修改 supermarket_receiver_distance 客户收获地址到每个砂站的距离 + */ + @Before(SupermarketCustomerDistanceValidator.class) + public void edit(){ + Sysuser tokenuser = SysuserSyncService.me.getSysuserByToken(get("token")); + + if (tokenuser == null) { + renderJson(Result.noauth()); + return; + } + + int customer_id = getInt("customer_id"); + int supermarket_id = getInt("supermarket_id"); + double distance = getParaToDouble("distance"); + + renderJson(SupermarketCustomerDistanceSyncService.me.update(customer_id, supermarket_id, distance, tokenuser)); + } +} diff --git a/ssjygl-xsx-service/src/main/java/com/cowr/service/ssjygl/supermarket/customerdistance/SupermarketCustomerDistanceSyncService.java b/ssjygl-xsx-service/src/main/java/com/cowr/service/ssjygl/supermarket/customerdistance/SupermarketCustomerDistanceSyncService.java new file mode 100644 index 0000000..b54be2b --- /dev/null +++ b/ssjygl-xsx-service/src/main/java/com/cowr/service/ssjygl/supermarket/customerdistance/SupermarketCustomerDistanceSyncService.java @@ -0,0 +1,67 @@ +package com.cowr.service.ssjygl.supermarket.customerdistance; + +import com.cowr.common.view.Result; +import com.cowr.model.*; +import com.cowr.service.ssjygl.base.BaseSyncService; +import com.cowr.service.ssjygl.main.SvrCacheData; + +import java.math.BigDecimal; + +public class SupermarketCustomerDistanceSyncService extends BaseSyncService { + public static SupermarketCustomerDistanceSyncService me = new SupermarketCustomerDistanceSyncService(); + + public Result save(int customer_id, int supermarket_id, double distance, Sysuser sysuser){ + Supermarket supermarket = SvrCacheData.SUP_CACHE.get(supermarket_id); + + if(supermarket == null){ + return Result.failed("未找到对应砂站信息"); + } + + Customer customer = Customer.dao.findById(customer_id); + + if(customer == null){ + return Result.failed("未找到对应的客户信息"); + } + + SupermarketCustomerDistance model = new SupermarketCustomerDistance(); + model.setCustomerId(customer_id); + model.setSupermarketId(supermarket_id); + model.setDistance(new BigDecimal(distance)); + + return super.save(model, sysuser); + } + + public Result update(int customer_id, int supermarket_id, double distance, Sysuser sysuser){ + Supermarket supermarket = SvrCacheData.SUP_CACHE.get(supermarket_id); + + if(supermarket == null){ + return Result.failed("未找到对应砂站信息"); + } + + Customer customer = Customer.dao.findById(customer_id); + + if(customer == null){ + return Result.failed("未找到对应的客户信息"); + } + + SupermarketCustomerDistance model = SupermarketCustomerDistance.dao.findFirst( + "select * from supermarket_customer_distance t \n" + + " where t.customer_id = ? and t.supermarket_id = ? limit 1", customer_id, supermarket_id); + + if(model == null){ + model = new SupermarketCustomerDistance(); + model.setCustomerId(customer_id); + model.setSupermarketId(supermarket_id); + model.setDistance(new BigDecimal(distance)); + + return super.save(model, sysuser); + }else{ + if(model.getDistance().compareTo(new BigDecimal(distance)) == 0){ + return Result.success("距离没有变化,不更新"); + } + + model.setDistance(new BigDecimal(distance)); + return super.update(model, sysuser); + } + } +}