修复配额客户额外单价显示,优化单价修改

dev
lisai17@sina.com 2021-09-27 10:15:40 +08:00
parent 2a95071ed0
commit 6737d9f1c0
4 changed files with 70 additions and 27 deletions

View File

@ -10,13 +10,16 @@ import com.cowr.model.CustomerReceiver;
import com.cowr.model.PrepayCustomer; import com.cowr.model.PrepayCustomer;
import com.cowr.model.Sysuser; import com.cowr.model.Sysuser;
import com.cowr.ssjygl.prepay.prepaycustomer.PrepayCustomerService; import com.cowr.ssjygl.prepay.prepaycustomer.PrepayCustomerService;
import com.cowr.ssjygl.supermarket.customerdistance.SupermarketCustomerDistanceService;
import com.jfinal.kit.StrKit; import com.jfinal.kit.StrKit;
import com.jfinal.plugin.activerecord.Db; import com.jfinal.plugin.activerecord.Db;
import com.jfinal.plugin.activerecord.Page; import com.jfinal.plugin.activerecord.Page;
import com.jfinal.plugin.activerecord.Record; import com.jfinal.plugin.activerecord.Record;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map;
/** /**
* Generated by COWR Mon Apr 06 21:35:28 CST 2020 * Generated by COWR Mon Apr 06 21:35:28 CST 2020
@ -78,17 +81,17 @@ public class CustomerService extends BaseService {
" ) a on a.customer_id = t.id\n" + " ) a on a.customer_id = t.id\n" +
" \n" + " \n" +
" left join (\n" + " left join (\n" +
" select t.id,"+ " select t.id," +
" t.customer_id,\n"+ " t.customer_id,\n" +
" t.supermarket_id,\n"+ " t.supermarket_id,\n" +
"t.recharge_time,\n"+ "t.recharge_time,\n" +
" t.spend_time,\n"+ " t.spend_time,\n" +
"t.first_recharge_time,\n"+ "t.first_recharge_time,\n" +
" t.threshold,\n"+ " t.threshold,\n" +
" t.notice,\n"+ " t.notice,\n" +
" (t.surplus-ifnull(m.amount,0)) surplus from prepay_customer t\n"+ " (t.surplus-ifnull(m.amount,0)) surplus from prepay_customer t\n" +
"left join (select customer_id,ifnull(sum(amount),0) amount from refund_detail where state<3 group by customer_id) m\n"+ "left join (select customer_id,ifnull(sum(amount),0) amount from refund_detail where state<3 group by customer_id) m\n" +
" on t.customer_id=m.customer_id\n"+ " on t.customer_id=m.customer_id\n" +
" left join (\n" + " left join (\n" +
" select max(t.id) prepay_customer_id, t.customer_id from prepay_customer t\n" + " select max(t.id) prepay_customer_id, t.customer_id from prepay_customer t\n" +
" group by t.customer_id\n" + " group by t.customer_id\n" +
@ -167,4 +170,30 @@ public class CustomerService extends BaseService {
public List<Customer> list() { public List<Customer> list() {
return Customer.dao.find("select * from customer"); return Customer.dao.find("select * from customer");
} }
public List<Record> distUnitPriceDistance(int customer_id) {
List<Record> list = SupermarketCustomerDistanceService.me.customerDistance(customer_id);
List<Record> uplist = Db.find("select * from customer_supermarket_product t where t.customer_id = ? ", customer_id);
Map<Integer, List<Record>> map = new HashMap<>();
for (Record record : uplist) {
Integer supermarket_id = record.getInt("supermarket_id");
if (!map.containsKey(supermarket_id)) {
map.put(supermarket_id, new ArrayList<>());
}
map.get(supermarket_id).add(record);
}
for (Record record : list) {
Integer supermarket_id = record.getInt("id");
if (map.containsKey(supermarket_id)) {
record.set("UnitPrices", map.get(supermarket_id));
}
}
return list;
}
} }

View File

@ -103,7 +103,7 @@ public class Config extends JFinalConfig {
public static DeviceThread deviceThread = new DeviceThread(); public static DeviceThread deviceThread = new DeviceThread();
public static SocketIOService socketio = null; public static SocketIOService socketio = null;
private static boolean client_run = true; private static boolean client_run = true;
public static final String CLINET_VERSION = "20210923"; public static final String CLINET_VERSION = "20210927";
public static String getRootPath() { public static String getRootPath() {
return PathKit.getWebRootPath() return PathKit.getWebRootPath()

View File

@ -151,4 +151,8 @@ public class CustomerController extends Controller {
Integer customer_id = getInt("customer_id"); Integer customer_id = getInt("customer_id");
renderJson(RefundDetailService.me.getCustomerAccountBalance(customer_id)); renderJson(RefundDetailService.me.getCustomerAccountBalance(customer_id));
} }
public void distUnitPriceDistance(){
Integer customer_id = getInt("customer_id");
renderJson(Result.object(CustomerService.me.distUnitPriceDistance(customer_id)));
}
} }

View File

@ -1,6 +1,5 @@
package com.cowr.service.ssjygl.supermarket; package com.cowr.service.ssjygl.supermarket;
import com.cowr.common.base.BaseModel;
import com.cowr.common.enums.Enums; import com.cowr.common.enums.Enums;
import com.cowr.common.view.Result; import com.cowr.common.view.Result;
import com.cowr.model.*; import com.cowr.model.*;
@ -154,22 +153,33 @@ public class SupermarketSyncService extends BaseSyncService {
} }
public Result editUnitPrice(int supermarket_id, int product_id,Double unit_price, Sysuser sysuser) { public Result editUnitPrice(int supermarket_id, int product_id, Double unit_price, Sysuser sysuser) {
if (unit_price == null || unit_price <= 0) {
return Result.failed("商品单价不能小于0");
}
SupermarketProduct sp = SupermarketProduct.dao.findByIds(supermarket_id, product_id); SupermarketProduct sp = SupermarketProduct.dao.findByIds(supermarket_id, product_id);
BaseModel saveold = (BaseModel) sp.clone();
if (sp == null) { if (sp == null) {
return Result.failed("商品配置信息不存在"); return Result.failed("商品配置信息不存在");
} }
if(unit_price==null ||unit_price<=0){
return Result.failed("商品单价不能小于0"); SupermarketProduct saveold = sp.clone();
}
sp.setUnitPrice(BigDecimal.valueOf(unit_price)); sp.setUnitPrice(BigDecimal.valueOf(unit_price));
String sql="select t.* from ordercluster t where t.state<5 and t.supermarket_id=? and product_id=? " +
"and t.id not in (select b.id from customer_supermarket_product a," + String sql = "select t.* from ordercluster t \n" +
"ordercluster b where a.customer_id=b.customer_id and a.supermarket_id=b.supermarket_id and a.product_id=b.product_id)"; " where t.state < 5 \n" +
List<Ordercluster> orderclusterList=Ordercluster.dao.find(sql,supermarket_id, product_id); " and t.supermarket_id = ?\n" +
" and t.product_id = ?\n" +
" and t.customer_id not in (\n" +
" select a.customer_id from customer_supermarket_product a\n" +
" where a.customer_id = t.customer_id \n" +
" and a.supermarket_id = t.supermarket_id \n" +
" and a.product_id = t.product_id\n" +
" )";
List<Ordercluster> orderclusterList = Ordercluster.dao.find(sql, supermarket_id, product_id);
Map<Integer, SyncTask> map = new HashMap<>(); Map<Integer, SyncTask> map = new HashMap<>();
if (orderclusterList!=null &&!orderclusterList.isEmpty()) { if (orderclusterList != null && !orderclusterList.isEmpty()) {
for (Ordercluster ordercluster : orderclusterList) { for (Ordercluster ordercluster : orderclusterList) {
ordercluster.setUnitPrice(BigDecimal.valueOf(unit_price)); ordercluster.setUnitPrice(BigDecimal.valueOf(unit_price));
if (!map.containsKey(ordercluster.getId())) { if (!map.containsKey(ordercluster.getId())) {
@ -195,7 +205,7 @@ public class SupermarketSyncService extends BaseSyncService {
ret = stock.update(); ret = stock.update();
} }
if (orderclusterList!=null &&!orderclusterList.isEmpty()) { if (orderclusterList != null && !orderclusterList.isEmpty()) {
int[] editret = Db.batchUpdate(orderclusterList, orderclusterList.size()); int[] editret = Db.batchUpdate(orderclusterList, orderclusterList.size());
for (int i : editret) { for (int i : editret) {
// 必须是每条 sql 修改一条记录 // 必须是每条 sql 修改一条记录