diff --git a/fuintAdmin/src/views/order/index.vue b/fuintAdmin/src/views/order/index.vue index 3c7d8891c..832df41ea 100644 --- a/fuintAdmin/src/views/order/index.vue +++ b/fuintAdmin/src/views/order/index.vue @@ -14,16 +14,6 @@ - - - - - - - - - - - + @@ -101,9 +91,9 @@ {{ getRealName(staffList,scope.row.staffId) }} - + @@ -482,3 +472,10 @@ export default { }; + diff --git a/fuintBackend/fuint-payment/src/main/java/com/fuint/api/cashier/coltroller/OilNumGunConfigController.java b/fuintBackend/fuint-application/src/main/java/com/fuint/api/cashier/coltroller/OilNumGunConfigController.java similarity index 100% rename from fuintBackend/fuint-payment/src/main/java/com/fuint/api/cashier/coltroller/OilNumGunConfigController.java rename to fuintBackend/fuint-application/src/main/java/com/fuint/api/cashier/coltroller/OilNumGunConfigController.java diff --git a/fuintBackend/fuint-payment/src/main/java/com/fuint/api/cashier/entity/OilNumGunConfig.java b/fuintBackend/fuint-application/src/main/java/com/fuint/api/cashier/entity/OilNumGunConfig.java similarity index 100% rename from fuintBackend/fuint-payment/src/main/java/com/fuint/api/cashier/entity/OilNumGunConfig.java rename to fuintBackend/fuint-application/src/main/java/com/fuint/api/cashier/entity/OilNumGunConfig.java diff --git a/fuintBackend/fuint-payment/src/main/java/com/fuint/api/cashier/mapper/OilNumGunConfigMapper.java b/fuintBackend/fuint-application/src/main/java/com/fuint/api/cashier/mapper/OilNumGunConfigMapper.java similarity index 86% rename from fuintBackend/fuint-payment/src/main/java/com/fuint/api/cashier/mapper/OilNumGunConfigMapper.java rename to fuintBackend/fuint-application/src/main/java/com/fuint/api/cashier/mapper/OilNumGunConfigMapper.java index 5fca164e8..41a74b37c 100644 --- a/fuintBackend/fuint-payment/src/main/java/com/fuint/api/cashier/mapper/OilNumGunConfigMapper.java +++ b/fuintBackend/fuint-application/src/main/java/com/fuint/api/cashier/mapper/OilNumGunConfigMapper.java @@ -14,6 +14,12 @@ public interface OilNumGunConfigMapper extends BaseMapper { */ public List selectOilNumGunList(); + /** + * 查询油号油枪信息 + * @return + */ + public List selectOilNumGunsList(); + /** * 根据油号查询油枪信息 * @param numberId diff --git a/fuintBackend/fuint-payment/src/main/java/com/fuint/api/cashier/mapper/xml/OilOrdersMapper.xml b/fuintBackend/fuint-application/src/main/java/com/fuint/api/cashier/mapper/xml/OilOrdersMapper.xml similarity index 86% rename from fuintBackend/fuint-payment/src/main/java/com/fuint/api/cashier/mapper/xml/OilOrdersMapper.xml rename to fuintBackend/fuint-application/src/main/java/com/fuint/api/cashier/mapper/xml/OilOrdersMapper.xml index 00d3885aa..2e24fecb2 100644 --- a/fuintBackend/fuint-payment/src/main/java/com/fuint/api/cashier/mapper/xml/OilOrdersMapper.xml +++ b/fuintBackend/fuint-application/src/main/java/com/fuint/api/cashier/mapper/xml/OilOrdersMapper.xml @@ -25,5 +25,8 @@ ong.id = #{id} + \ No newline at end of file diff --git a/fuintBackend/fuint-payment/src/main/java/com/fuint/api/cashier/service/OilNumGunConfigService.java b/fuintBackend/fuint-application/src/main/java/com/fuint/api/cashier/service/OilNumGunConfigService.java similarity index 100% rename from fuintBackend/fuint-payment/src/main/java/com/fuint/api/cashier/service/OilNumGunConfigService.java rename to fuintBackend/fuint-application/src/main/java/com/fuint/api/cashier/service/OilNumGunConfigService.java diff --git a/fuintBackend/fuint-payment/src/main/java/com/fuint/api/cashier/service/impl/OilNumGunConfigServiceImpl.java b/fuintBackend/fuint-application/src/main/java/com/fuint/api/cashier/service/impl/OilNumGunConfigServiceImpl.java similarity index 95% rename from fuintBackend/fuint-payment/src/main/java/com/fuint/api/cashier/service/impl/OilNumGunConfigServiceImpl.java rename to fuintBackend/fuint-application/src/main/java/com/fuint/api/cashier/service/impl/OilNumGunConfigServiceImpl.java index e97b7e288..eceb78de5 100644 --- a/fuintBackend/fuint-payment/src/main/java/com/fuint/api/cashier/service/impl/OilNumGunConfigServiceImpl.java +++ b/fuintBackend/fuint-application/src/main/java/com/fuint/api/cashier/service/impl/OilNumGunConfigServiceImpl.java @@ -24,7 +24,7 @@ public class OilNumGunConfigServiceImpl extends ServiceImpl selectListByOilNum(String oilNum) { List list = null; if (oilNum.equals("全部")){ - list = baseMapper.selectOilNumGunList(); + list = baseMapper.selectOilNumGunsList(); }else { list = baseMapper.selectListByOilNum(oilNum); } diff --git a/fuintBackend/fuint-payment/src/main/java/com/fuint/api/cashier/vo/OilNumGunConfigVo.java b/fuintBackend/fuint-application/src/main/java/com/fuint/api/cashier/vo/OilNumGunConfigVo.java similarity index 100% rename from fuintBackend/fuint-payment/src/main/java/com/fuint/api/cashier/vo/OilNumGunConfigVo.java rename to fuintBackend/fuint-application/src/main/java/com/fuint/api/cashier/vo/OilNumGunConfigVo.java diff --git a/fuintBackend/fuint-payment/src/main/java/com/fuint/api/fuyou/controller/FyPayController.java b/fuintBackend/fuint-application/src/main/java/com/fuint/api/fuyou/controller/FyPayController.java similarity index 100% rename from fuintBackend/fuint-payment/src/main/java/com/fuint/api/fuyou/controller/FyPayController.java rename to fuintBackend/fuint-application/src/main/java/com/fuint/api/fuyou/controller/FyPayController.java diff --git a/fuintBackend/fuint-payment/src/main/java/com/fuint/api/fuyou/entity/Builder.java b/fuintBackend/fuint-application/src/main/java/com/fuint/api/fuyou/entity/Builder.java similarity index 100% rename from fuintBackend/fuint-payment/src/main/java/com/fuint/api/fuyou/entity/Builder.java rename to fuintBackend/fuint-application/src/main/java/com/fuint/api/fuyou/entity/Builder.java diff --git a/fuintBackend/fuint-payment/src/main/java/com/fuint/api/fuyou/entity/Const.java b/fuintBackend/fuint-application/src/main/java/com/fuint/api/fuyou/entity/Const.java similarity index 100% rename from fuintBackend/fuint-payment/src/main/java/com/fuint/api/fuyou/entity/Const.java rename to fuintBackend/fuint-application/src/main/java/com/fuint/api/fuyou/entity/Const.java diff --git a/fuintBackend/fuint-payment/src/main/java/com/fuint/api/fuyou/entity/MerchantConfig.java b/fuintBackend/fuint-application/src/main/java/com/fuint/api/fuyou/entity/MerchantConfig.java similarity index 100% rename from fuintBackend/fuint-payment/src/main/java/com/fuint/api/fuyou/entity/MerchantConfig.java rename to fuintBackend/fuint-application/src/main/java/com/fuint/api/fuyou/entity/MerchantConfig.java diff --git a/fuintBackend/fuint-payment/src/main/java/com/fuint/api/fuyou/entity/Message.java b/fuintBackend/fuint-application/src/main/java/com/fuint/api/fuyou/entity/Message.java similarity index 100% rename from fuintBackend/fuint-payment/src/main/java/com/fuint/api/fuyou/entity/Message.java rename to fuintBackend/fuint-application/src/main/java/com/fuint/api/fuyou/entity/Message.java diff --git a/fuintBackend/fuint-payment/src/main/java/com/fuint/api/fuyou/mapper/MerchantConfigMapper.java b/fuintBackend/fuint-application/src/main/java/com/fuint/api/fuyou/mapper/MerchantConfigMapper.java similarity index 100% rename from fuintBackend/fuint-payment/src/main/java/com/fuint/api/fuyou/mapper/MerchantConfigMapper.java rename to fuintBackend/fuint-application/src/main/java/com/fuint/api/fuyou/mapper/MerchantConfigMapper.java diff --git a/fuintBackend/fuint-payment/src/main/java/com/fuint/api/fuyou/service/FyPayService.java b/fuintBackend/fuint-application/src/main/java/com/fuint/api/fuyou/service/FyPayService.java similarity index 100% rename from fuintBackend/fuint-payment/src/main/java/com/fuint/api/fuyou/service/FyPayService.java rename to fuintBackend/fuint-application/src/main/java/com/fuint/api/fuyou/service/FyPayService.java diff --git a/fuintBackend/fuint-payment/src/main/java/com/fuint/api/fuyou/service/MerchantConfigService.java b/fuintBackend/fuint-application/src/main/java/com/fuint/api/fuyou/service/MerchantConfigService.java similarity index 100% rename from fuintBackend/fuint-payment/src/main/java/com/fuint/api/fuyou/service/MerchantConfigService.java rename to fuintBackend/fuint-application/src/main/java/com/fuint/api/fuyou/service/MerchantConfigService.java diff --git a/fuintBackend/fuint-payment/src/main/java/com/fuint/api/fuyou/service/impl/FyPayServiceImpl.java b/fuintBackend/fuint-application/src/main/java/com/fuint/api/fuyou/service/impl/FyPayServiceImpl.java similarity index 72% rename from fuintBackend/fuint-payment/src/main/java/com/fuint/api/fuyou/service/impl/FyPayServiceImpl.java rename to fuintBackend/fuint-application/src/main/java/com/fuint/api/fuyou/service/impl/FyPayServiceImpl.java index 418e4d2d9..b99f2dbfa 100644 --- a/fuintBackend/fuint-payment/src/main/java/com/fuint/api/fuyou/service/impl/FyPayServiceImpl.java +++ b/fuintBackend/fuint-application/src/main/java/com/fuint/api/fuyou/service/impl/FyPayServiceImpl.java @@ -7,23 +7,24 @@ import com.fuint.api.fuyou.entity.Const; import com.fuint.api.fuyou.entity.Message; import com.fuint.api.fuyou.service.FyPayService; import com.fuint.api.fuyou.util.Utils; -import com.fuint.api.order.entity.GoodsOrder; -import com.fuint.api.order.entity.OilOrders; -import com.fuint.api.order.service.GoodsOrderService; -import com.fuint.api.order.service.OilOrdersService; +import com.fuint.business.order.entity.LJOrder; +import com.fuint.business.order.entity.OilOrder; +import com.fuint.business.order.service.LJOrderService; +import com.fuint.business.order.service.OilOrderService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.text.SimpleDateFormat; import java.util.*; @Service @Slf4j public class FyPayServiceImpl implements FyPayService { @Autowired - private GoodsOrderService goodsOrderService; + private LJOrderService goodsOrderService; @Autowired - private OilOrdersService oilOrderService; + private OilOrderService oilOrderService; /** * 条码支付 @@ -61,32 +62,27 @@ public class FyPayServiceImpl implements FyPayService { Map resMap = Utils.xmlStr2Map(rspXml); String str = resMap.get("sign"); if (Utils.verifySign(resMap, str)){ - String resultCode = resMap.get("result_code"); -// if (resultCode.equals("000000")){ -// return resMap; -// }else { - ThreadUtil.execAsync(() -> { - Timer timer = new Timer(); - timer.schedule(new TimerTask() { - @Override - public void run() { - try { - Map orderQueryRes = queryOrder(map1); - if(!orderQueryRes.get("msg").equals("unpaid")){ - timer.cancel(); - } - } catch (Exception e) { - throw new RuntimeException(e); + String resultCode = resMap.get("result_code"); + ThreadUtil.execAsync(() -> { + Timer timer = new Timer(); + timer.schedule(new TimerTask() { + @Override + public void run() { + try { + Map orderQueryRes = queryOrder(map1); + if(!orderQueryRes.get("msg").equals("unpaid")){ + timer.cancel(); } - } - //定时器 立即开始 0.5s一次 - }, 0, 500); - Thread.currentThread().interrupt(); - }); - } - return resMap; -// } -// return null; + } catch (Exception e) { + throw new RuntimeException(e); + } + } + //定时器 立即开始 0.5s一次 + }, 0, 500); + Thread.currentThread().interrupt(); + }); + } + return resMap; } @@ -114,11 +110,15 @@ public class FyPayServiceImpl implements FyPayService { Map reqMap = Utils.xmlStr2Map(rspXml); String str = reqMap.get("sign"); if (Utils.verifySign(reqMap, str)){ - OilOrders oilOrder = oilOrderService.selectOilOrderByOrderNo(orderNo); - GoodsOrder goodsOrder = goodsOrderService.selectGoodsOrder(orderNo); + OilOrder oilOrder = oilOrderService.selectOilOrderByOrderNo(orderNo); + LJOrder goodsOrder = goodsOrderService.selectGoodsOrder(orderNo); + Date date = new Date(); +// SimpleDateFormat dateFormat= new SimpleDateFormat("yyyy-MM-dd :hh:mm:ss"); +// dateFormat.format(date); if (reqMap.get("trans_stat").equals("SUCCESS")){ if (!ObjectUtil.isEmpty(oilOrder)){ oilOrder.setOrderStatus("paid"); + oilOrder.setPayTime(date); } if (!ObjectUtil.isEmpty(goodsOrder)){ goodsOrder.setStatus("paid"); diff --git a/fuintBackend/fuint-payment/src/main/java/com/fuint/api/fuyou/service/impl/MerchantConfigServiceImpl.java b/fuintBackend/fuint-application/src/main/java/com/fuint/api/fuyou/service/impl/MerchantConfigServiceImpl.java similarity index 100% rename from fuintBackend/fuint-payment/src/main/java/com/fuint/api/fuyou/service/impl/MerchantConfigServiceImpl.java rename to fuintBackend/fuint-application/src/main/java/com/fuint/api/fuyou/service/impl/MerchantConfigServiceImpl.java diff --git a/fuintBackend/fuint-payment/src/main/java/com/fuint/api/fuyou/util/Sign.java b/fuintBackend/fuint-application/src/main/java/com/fuint/api/fuyou/util/Sign.java similarity index 100% rename from fuintBackend/fuint-payment/src/main/java/com/fuint/api/fuyou/util/Sign.java rename to fuintBackend/fuint-application/src/main/java/com/fuint/api/fuyou/util/Sign.java diff --git a/fuintBackend/fuint-payment/src/main/java/com/fuint/api/fuyou/util/Utils.java b/fuintBackend/fuint-application/src/main/java/com/fuint/api/fuyou/util/Utils.java similarity index 100% rename from fuintBackend/fuint-payment/src/main/java/com/fuint/api/fuyou/util/Utils.java rename to fuintBackend/fuint-application/src/main/java/com/fuint/api/fuyou/util/Utils.java diff --git a/fuintBackend/fuint-application/src/main/java/com/fuint/business/order/entity/CashierOrder.java b/fuintBackend/fuint-application/src/main/java/com/fuint/business/order/entity/CashierOrder.java new file mode 100644 index 000000000..2b6bd9e1c --- /dev/null +++ b/fuintBackend/fuint-application/src/main/java/com/fuint/business/order/entity/CashierOrder.java @@ -0,0 +1,43 @@ +package com.fuint.business.order.entity; + +import lombok.Data; + +import java.util.Date; + +@Data +public class CashierOrder { +// 油品id + private Integer oilId; +// 商品id + private Integer goodId; +// 订单号 + private String orderNo; +// 油品实付金额 + private Double oilPayAmount; +// 商品实付金额 + private Double goodsPayAmount; +// 油品订单金额 + private Double oilOrderAmount; +// 商品订单金额 + private Double goodsOrderAmount; +// 油品优惠金额 + private Double oilDiscountAmount; +// 商品优惠金额 + private Double goodsDiscountAmount; +// 付款用户 + private String payUser; +// 付款类型 + private String payType; +// 支付时间 + private Date payTime; +// 油品金额 + private Double orderAmount; +// 油号 + private String oils; +// 油枪号 + private Integer oilGunNum; +// 油品数量 + private Double oilNum; +// 油品单价 + private Double oilPrice; +} diff --git a/fuintBackend/fuint-application/src/main/java/com/fuint/business/order/entity/OilOrder.java b/fuintBackend/fuint-application/src/main/java/com/fuint/business/order/entity/OilOrder.java index 2d2772d2c..4f564d54a 100644 --- a/fuintBackend/fuint-application/src/main/java/com/fuint/business/order/entity/OilOrder.java +++ b/fuintBackend/fuint-application/src/main/java/com/fuint/business/order/entity/OilOrder.java @@ -97,6 +97,10 @@ public class OilOrder extends BaseEntity implements Serializable { * 订单状态:已支付、未支付 */ private String orderStatus; + /** + * 订单类型:主订单、子订单 + */ + private String orderType; /** * 支付时间 */ diff --git a/fuintBackend/fuint-application/src/main/java/com/fuint/business/order/mapper/xml/OilOrderMapper.xml b/fuintBackend/fuint-application/src/main/java/com/fuint/business/order/mapper/xml/OilOrderMapper.xml index f64cccb2f..9519913e3 100644 --- a/fuintBackend/fuint-application/src/main/java/com/fuint/business/order/mapper/xml/OilOrderMapper.xml +++ b/fuintBackend/fuint-application/src/main/java/com/fuint/business/order/mapper/xml/OilOrderMapper.xml @@ -9,27 +9,30 @@ store_id = #{order.storeId} - - - - - - - - - - - - - - - - - - - - - + + and staff_id = #{order.staffId} + + + and terminal = #{order.terminal} + + + and oil_gun_num = #{order.oilGunNum} + + + and pay_type = #{order.payType} + + + and order_no like concat('%', #{order.orderNo}, '%') + + + and pay_user like concat('%', #{order.payUser}, '%') + + + and date_format(pay_time,'%y%m%d') >= date_format(#{order.params.beginTime},'%y%m%d') + + + and date_format(pay_time,'%y%m%d') <= date_format(#{order.params.endTime},'%y%m%d') + \ No newline at end of file diff --git a/fuintBackend/fuint-application/src/main/java/com/fuint/business/order/service/impl/OilOrderServiceImpl.java b/fuintBackend/fuint-application/src/main/java/com/fuint/business/order/service/impl/OilOrderServiceImpl.java index 87902d8a6..2498477d2 100644 --- a/fuintBackend/fuint-application/src/main/java/com/fuint/business/order/service/impl/OilOrderServiceImpl.java +++ b/fuintBackend/fuint-application/src/main/java/com/fuint/business/order/service/impl/OilOrderServiceImpl.java @@ -1,5 +1,6 @@ package com.fuint.business.order.service.impl; +import cn.hutool.core.util.ObjectUtil; import com.alibaba.fastjson2.JSONArray; import com.alibaba.fastjson2.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; @@ -137,10 +138,21 @@ public class OilOrderServiceImpl extends ServiceImpl i // 将油品订单的json数据转换为数组 List jsonObjects = JSONArray.parseArray(oilOrder, JSONObject.class); OilOrder order = new OilOrder(); - for (JSONObject object : jsonObjects) { - Double amount = Double.valueOf(object.get("amount").toString()); - Double oilPrice = Double.valueOf(object.get("oilPrice").toString()); + for (int i = 0;i < jsonObjects.size();i++) { + Double amount = Double.valueOf(jsonObjects.get(i).get("amount").toString()); + Double oilPrice = Double.valueOf(jsonObjects.get(i).get("oilPrice").toString()); Double oilNum = amount/oilPrice; + if (i==0){ + order.setOrderType("主订单"); + order.setOrderAmount(amount); + order.setPayAmount(oilActualPay); + order.setOrderNo(orderNo); + }else { + order.setOrderType("子订单"); + order.setOrderAmount(amount); + order.setPayAmount(0.0); + order.setOrderNo(orderNo+"1"); + } order.setStoreId(storeId); order.setUserId(userId); @@ -148,17 +160,17 @@ public class OilOrderServiceImpl extends ServiceImpl i order.setCommissionAmount(commissionAmount); order.setStaffId(staffId); order.setTerminal(terminal); - order.setOrderNo(orderNo); - order.setOils((String) object.get("oilName")); - order.setOilGunNum(Integer.valueOf(object.get("oilGunNum").toString())); + order.setOils((String) jsonObjects.get(i).get("oilName")); + order.setOilGunNum(Integer.valueOf(jsonObjects.get(i).get("oilGunNum").toString())); order.setOilNum(oilNum); - order.setOrderAmount(oilAmount); order.setDiscountAmount(oilDiscount); - order.setPayAmount(oilActualPay); order.setPayUser(payUser); order.setPayType(payType); order.setInvoicing("未开票"); order.setOrderStatus(payStatus); + if (payType.equals("CASH")){ + order.setPayTime(new Date()); + } baseMapper.insert(order); oilOrder1 = this.selectOilOrderByOrderNo(orderNo); } @@ -181,6 +193,9 @@ public class OilOrderServiceImpl extends ServiceImpl i ljOrder.setDiscount(goodsDiscount); ljOrder.setStaffId(staffId); ljOrder.setStatus(payStatus); + if (payType.equals("CASH")){ + ljOrder.setPayTime(new Date()); + } orderService.insertGoodOrder(ljOrder); // 将油品订单的json数据转换为数组 List goods = JSONArray.parseArray(goodsOrder, JSONObject.class); @@ -227,8 +242,12 @@ public class OilOrderServiceImpl extends ServiceImpl i Map orders = new HashMap<>(); OilOrder oilOrder2 = this.selectOilOrderByOrderNo(orderNo); LJOrder goodsOrder1 = orderService.selectGoodsOrder(orderNo); - orders.put("oilOrder",oilOrder2); - orders.put("goodsOrder",goodsOrder1); + if (!ObjectUtil.isEmpty(oilOrder2)){ + orders.put("oilOrder",oilOrder2); + } + if (!ObjectUtil.isEmpty(goodsOrder1)){ + orders.put("goodsOrder",goodsOrder1); + } return orders; } diff --git a/fuintBackend/fuint-application/src/main/java/com/fuint/business/userManager/controller/LJUserController.java b/fuintBackend/fuint-application/src/main/java/com/fuint/business/userManager/controller/LJUserController.java index 6c8445a03..d1bbff17f 100644 --- a/fuintBackend/fuint-application/src/main/java/com/fuint/business/userManager/controller/LJUserController.java +++ b/fuintBackend/fuint-application/src/main/java/com/fuint/business/userManager/controller/LJUserController.java @@ -43,6 +43,15 @@ public class LJUserController extends BaseController { return getSuccessResult(list); } + /** + * 查询所有会员信息 + * @return + */ + @GetMapping("/userList") + public ResponseObject userList(){ + return getSuccessResult(userService.selectUsersList()); + } + /** * 查询会员统计信息 * @return diff --git a/fuintBackend/fuint-application/src/main/java/com/fuint/business/userManager/entity/LJUser.java b/fuintBackend/fuint-application/src/main/java/com/fuint/business/userManager/entity/LJUser.java index 869b82237..507303a64 100644 --- a/fuintBackend/fuint-application/src/main/java/com/fuint/business/userManager/entity/LJUser.java +++ b/fuintBackend/fuint-application/src/main/java/com/fuint/business/userManager/entity/LJUser.java @@ -39,6 +39,9 @@ public class LJUser extends BaseEntity implements Serializable { @ApiModelProperty("会员号") private String userNo; + @ApiModelProperty("实体卡号") + private String physicalCard; + @ApiModelProperty("头像") private String avatar; diff --git a/fuintBackend/fuint-application/src/main/java/com/fuint/business/userManager/service/LJUserService.java b/fuintBackend/fuint-application/src/main/java/com/fuint/business/userManager/service/LJUserService.java index f23869e6b..cd2d21506 100644 --- a/fuintBackend/fuint-application/src/main/java/com/fuint/business/userManager/service/LJUserService.java +++ b/fuintBackend/fuint-application/src/main/java/com/fuint/business/userManager/service/LJUserService.java @@ -20,6 +20,12 @@ public interface LJUserService extends IService { */ public IPage selectUserList(Page page, LJUserVo user); + /** + * 查询所有会员信息 + * @return + */ + public List selectUsersList(); + /** * 查询会员统计信息 * @return diff --git a/fuintBackend/fuint-application/src/main/java/com/fuint/business/userManager/service/impl/LJUserServiceImpl.java b/fuintBackend/fuint-application/src/main/java/com/fuint/business/userManager/service/impl/LJUserServiceImpl.java index 5d70f7c42..302f8198f 100644 --- a/fuintBackend/fuint-application/src/main/java/com/fuint/business/userManager/service/impl/LJUserServiceImpl.java +++ b/fuintBackend/fuint-application/src/main/java/com/fuint/business/userManager/service/impl/LJUserServiceImpl.java @@ -44,6 +44,20 @@ public class LJUserServiceImpl extends ServiceImpl impleme return ljUserIPage; } + /** + * 查询所有会员信息 + * @return + */ + @Override + public List selectUsersList() { + AccountInfo nowAccountInfo = TokenUtil.getNowAccountInfo(); + Integer storeId = nowAccountInfo.getStoreId(); + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("store_id",storeId); + List list = baseMapper.selectList(queryWrapper); + return list; + } + /** * 查询会员统计信息 * @return @@ -145,12 +159,29 @@ public class LJUserServiceImpl extends ServiceImpl impleme return 0; } if (user.getUserNo()==null || user.getUserNo().equals("")){ -// SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmmss"); -// String timestamp = dateFormat.format(new Date()); - String randomString = UUID.randomUUID().toString().replace("-","").substring(0,6); - user1.setUserNo(randomString); + Random random = new Random(); + StringBuilder sb = new StringBuilder(); + for (int i = 0; i < 7; i++) { + sb.append(random.nextInt(10)); + } + String digits = sb.toString(); + + int sum = 0; + for (int i = 0; i < digits.length(); i++) { + int digit = Integer.parseInt(String.valueOf(digits.charAt(i))); + if (i % 2 == 0) { + sum += digit; + } else { + sum += digit * 3; + } + } + int checksum = (10 - (sum % 10)) % 10; + + String number = digits + checksum; + user1.setUserNo(number); + }else { + user1.setUserNo(user.getUserNo()); } - user1.setUserNo(user.getUserNo()); user1.setAvatar(user.getAvatar()); user1.setName(user.getName()); user1.setOpenId(user.getOpenId()); diff --git a/fuintBackend/fuint-application/src/main/java/com/fuint/business/userManager/vo/LJUserVo.java b/fuintBackend/fuint-application/src/main/java/com/fuint/business/userManager/vo/LJUserVo.java index 6dc63eda4..18aabae2e 100644 --- a/fuintBackend/fuint-application/src/main/java/com/fuint/business/userManager/vo/LJUserVo.java +++ b/fuintBackend/fuint-application/src/main/java/com/fuint/business/userManager/vo/LJUserVo.java @@ -17,6 +17,9 @@ public class LJUserVo extends BaseEntity { @ExcelProperty(value = "会员号") private String userNo; +// 实体卡号 + private String physicalCard; + // 头像 private String avatar; diff --git a/fuintBackend/fuint-payment/src/main/java/com/fuint/api/order/entity/GoodsOrder.java b/fuintBackend/fuint-payment/src/main/java/com/fuint/api/order/entity/GoodsOrder.java deleted file mode 100644 index 3394c6966..000000000 --- a/fuintBackend/fuint-payment/src/main/java/com/fuint/api/order/entity/GoodsOrder.java +++ /dev/null @@ -1,97 +0,0 @@ -package com.fuint.api.order.entity; - -import com.baomidou.mybatisplus.annotation.IdType; -import com.baomidou.mybatisplus.annotation.TableId; -import com.baomidou.mybatisplus.annotation.TableName; -import com.fuint.framework.entity.BaseEntity; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import lombok.Data; - -import java.io.Serializable; -import java.util.Date; - -/** - * 商品订单表(Order)实体类 - * - * @author makejava - * @since 2023-11-07 15:04:17 - */ -@Data -@TableName("mt_order") -@ApiModel(value = "LJOrder对象", description = "商品订单表") -public class GoodsOrder extends BaseEntity implements Serializable { - - private static final long serialVersionUID = 1L; - /** - * 自增ID - */ - @ApiModelProperty("自增ID") - @TableId(value = "ID", type = IdType.AUTO) - private Integer id; - /** - * 终端 - */ - private String terminal; - /** - * 付款用户 - */ - private String payUser; - /** - * 支付类型 - */ - private String payType; - /** - * 订单号 - */ - private String orderNo; - /** - * 所属店铺ID - */ - private Integer storeId; - /** - * 用户ID - */ - private Integer userId; - /** - * 订单金额 - */ - private Double amount; - /** - * 支付金额 - */ - private Double payAmount; - /** - * 商品数量 - */ - private Integer goodsNum; - /** - * 使用积分数量 - */ - private Integer usePoint; - /** - * 积分金额 - */ - private Double pointAmount; - /** - * 优惠金额 - */ - private Double discount; - /** - * 用户备注 - */ - private String remark; - /** - * 订单状态 - */ - private String status; - /** - * 支付时间 - */ - private Date payTime; - /** - * 操作员工 - */ - private Integer staffId; -} - diff --git a/fuintBackend/fuint-payment/src/main/java/com/fuint/api/order/entity/OilOrders.java b/fuintBackend/fuint-payment/src/main/java/com/fuint/api/order/entity/OilOrders.java deleted file mode 100644 index 8161f0a72..000000000 --- a/fuintBackend/fuint-payment/src/main/java/com/fuint/api/order/entity/OilOrders.java +++ /dev/null @@ -1,118 +0,0 @@ -package com.fuint.api.order.entity; - -import com.baomidou.mybatisplus.annotation.IdType; -import com.baomidou.mybatisplus.annotation.TableId; -import com.baomidou.mybatisplus.annotation.TableName; -import com.fuint.framework.entity.BaseEntity; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import lombok.Data; - -import java.io.Serializable; -import java.util.Date; - -/** - * 油品订单表(OilOrder)实体类 - * - * @author makejava - * @since 2023-11-07 15:10:07 - */ -@Data -@TableName("oil_order") -@ApiModel(value = "OilOrder对象", description = "油品订单表") -public class OilOrders extends BaseEntity implements Serializable { - - private static final long serialVersionUID = 1L; - /** - * 自增ID - */ - @ApiModelProperty("自增ID") - @TableId(value = "ID", type = IdType.AUTO) - private Integer id; - /** - * 店铺id - */ - private Integer storeId; - /** - * 用户id - */ - private Integer userId; - /** - * 优惠券id - */ - private Integer couponId; - /** - * 提成金额 - */ - private Double commissionAmount; - /** - * 员工id - */ - private Integer staffId; - /** - * 终端 - */ - private String terminal; - /** - * 订单号 - */ - private String orderNo; - /** - * 油品 - */ - private String oils; - /** - * 油枪号 - */ - private Integer oilGunNum; - /** - * 油品数量 - */ - private Double oilNum; - /** - * 订单金额 - */ - private Double orderAmount; - /** - * 优惠金额 - */ - private Double discountAmount; - /** - * 实付金额 - */ - private Double payAmount; - /** - * 付款用户 - */ - private String payUser; - /** - * 付款类型:微信、支付宝等、赊账 - */ - private String payType; - /** - * 开票标识:已开票、未开票 - */ - private String invoicing; - /** - * 订单状态:已支付、未支付 - */ - private String orderStatus; - /** - * 支付时间 - */ - private Date payTime; - /** - * 富友订单号 - */ - private Integer reservedFyOrderNo; - /** - * 富友渠道交易流水号 - */ - private Integer reservedTransactionId; - /** - * 订单备注 - */ - private String remark; - -} - diff --git a/fuintBackend/fuint-payment/src/main/java/com/fuint/api/order/mapper/GoodsOrderMapper.java b/fuintBackend/fuint-payment/src/main/java/com/fuint/api/order/mapper/GoodsOrderMapper.java deleted file mode 100644 index 82eddbb6d..000000000 --- a/fuintBackend/fuint-payment/src/main/java/com/fuint/api/order/mapper/GoodsOrderMapper.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.fuint.api.order.mapper; - -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.fuint.api.order.entity.GoodsOrder; - -/** - * 订单信息 Mapper层 - */ -public interface GoodsOrderMapper extends BaseMapper { - -} diff --git a/fuintBackend/fuint-payment/src/main/java/com/fuint/api/order/mapper/OilOrdersMapper.java b/fuintBackend/fuint-payment/src/main/java/com/fuint/api/order/mapper/OilOrdersMapper.java deleted file mode 100644 index d5a8d9a7e..000000000 --- a/fuintBackend/fuint-payment/src/main/java/com/fuint/api/order/mapper/OilOrdersMapper.java +++ /dev/null @@ -1,12 +0,0 @@ -package com.fuint.api.order.mapper; - - -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.fuint.api.order.entity.OilOrders; - -/** - * 油品订单表 Mapper层 - */ -public interface OilOrdersMapper extends BaseMapper { - -} diff --git a/fuintBackend/fuint-payment/src/main/java/com/fuint/api/order/service/GoodsOrderService.java b/fuintBackend/fuint-payment/src/main/java/com/fuint/api/order/service/GoodsOrderService.java deleted file mode 100644 index 997a28a69..000000000 --- a/fuintBackend/fuint-payment/src/main/java/com/fuint/api/order/service/GoodsOrderService.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.fuint.api.order.service; - -import com.baomidou.mybatisplus.extension.service.IService; -import com.fuint.api.order.entity.GoodsOrder; - -/** - * 订单信息 业务层 - */ -public interface GoodsOrderService extends IService { - /** - * 根据订单号查询商品订单信息 - * @param orderNo - * @return - */ - public GoodsOrder selectGoodsOrder(String orderNo); - - /** - * 修改商品订单信息 - * @param order - * @return - */ - public int updateGoodOrder(GoodsOrder order); -} diff --git a/fuintBackend/fuint-payment/src/main/java/com/fuint/api/order/service/OilOrdersService.java b/fuintBackend/fuint-payment/src/main/java/com/fuint/api/order/service/OilOrdersService.java deleted file mode 100644 index 108b96d4d..000000000 --- a/fuintBackend/fuint-payment/src/main/java/com/fuint/api/order/service/OilOrdersService.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.fuint.api.order.service; - -import com.baomidou.mybatisplus.extension.service.IService; -import com.fuint.api.order.entity.OilOrders; - -/** - * 油品订单信息 业务层 - */ -public interface OilOrdersService extends IService { - /** - * 根据订单号查询油品订单信息 - * @param orderNo - * @return - */ - public OilOrders selectOilOrderByOrderNo(String orderNo); - - /** - * 添加油品订单信息 - * @param order - * @return - */ - public int updateOilOrder(OilOrders order); -} diff --git a/fuintBackend/fuint-payment/src/main/java/com/fuint/api/order/service/impl/GoodsOrderServiceImpl.java b/fuintBackend/fuint-payment/src/main/java/com/fuint/api/order/service/impl/GoodsOrderServiceImpl.java deleted file mode 100644 index 07634f121..000000000 --- a/fuintBackend/fuint-payment/src/main/java/com/fuint/api/order/service/impl/GoodsOrderServiceImpl.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.fuint.api.order.service.impl; - -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.fuint.api.order.entity.GoodsOrder; -import com.fuint.api.order.mapper.GoodsOrderMapper; -import com.fuint.api.order.service.GoodsOrderService; -import org.springframework.stereotype.Service; - -@Service -public class GoodsOrderServiceImpl extends ServiceImpl implements GoodsOrderService { - - @Override - public GoodsOrder selectGoodsOrder(String orderNo) { - QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.eq("order_no",orderNo); - GoodsOrder ljOrder = baseMapper.selectOne(queryWrapper); - return ljOrder; - } - - @Override - public int updateGoodOrder(GoodsOrder order) { - int row = baseMapper.updateById(order); - return row; - } -} diff --git a/fuintBackend/fuint-payment/src/main/java/com/fuint/api/order/service/impl/OilOrdersServiceImpl.java b/fuintBackend/fuint-payment/src/main/java/com/fuint/api/order/service/impl/OilOrdersServiceImpl.java deleted file mode 100644 index f760b5284..000000000 --- a/fuintBackend/fuint-payment/src/main/java/com/fuint/api/order/service/impl/OilOrdersServiceImpl.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.fuint.api.order.service.impl; - -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.fuint.api.order.entity.OilOrders; -import com.fuint.api.order.mapper.OilOrdersMapper; -import com.fuint.api.order.service.OilOrdersService; -import org.springframework.stereotype.Service; - -@Service -public class OilOrdersServiceImpl extends ServiceImpl implements OilOrdersService { - @Override - public OilOrders selectOilOrderByOrderNo(String orderNo) { - QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.eq("order_no",orderNo); - OilOrders order = baseMapper.selectOne(queryWrapper); - return order; - } - - @Override - public int updateOilOrder(OilOrders order) { - int row = baseMapper.updateById(order); - return row; - } -} diff --git a/fuintCashierWeb/src/api/cashier/goodsorder.js b/fuintCashierWeb/src/api/cashier/goodsorder.js new file mode 100644 index 000000000..e357c7160 --- /dev/null +++ b/fuintCashierWeb/src/api/cashier/goodsorder.js @@ -0,0 +1,18 @@ +import request from '@/utils/request' + +// 查询商品列表 +export function listOrder(query) { + return request({ + url: '/business/order/list', + method: 'get', + params: query + }) +} + +// 根据订单id查询商品订单信息 +export function getOrderGoods(orderId) { + return request({ + url: '/business/orderGoods/' + orderId, + method: 'get', + }) +} diff --git a/fuintCashierWeb/src/api/cashier/oilorder.js b/fuintCashierWeb/src/api/cashier/oilorder.js index 0cabee624..fb540eb33 100644 --- a/fuintCashierWeb/src/api/cashier/oilorder.js +++ b/fuintCashierWeb/src/api/cashier/oilorder.js @@ -27,7 +27,7 @@ export function oilOrder(data) { }) } -// 根据订单号查询商品订单信息 +// 根据订单号查询油品订单信息 export function goodsOrder(data) { return request({ url: '/business/order/orderNo', diff --git a/fuintCashierWeb/src/api/cashier/user.js b/fuintCashierWeb/src/api/cashier/user.js index 1e17fe70b..dee7cc37d 100644 --- a/fuintCashierWeb/src/api/cashier/user.js +++ b/fuintCashierWeb/src/api/cashier/user.js @@ -9,6 +9,14 @@ export function listUser(query) { }) } +// 查询所有会员列表 +export function listUsers() { + return request({ + url: '/business/userManager/user/userList', + method: 'get' + }) +} + // 根据手机号查询会员详细 export function getUserVoMobile(data) { return request({ diff --git a/fuintCashierWeb/src/api/cashier/user/certifiedmember.js b/fuintCashierWeb/src/api/cashier/user/certifiedmember.js new file mode 100644 index 000000000..f3b2c4ebb --- /dev/null +++ b/fuintCashierWeb/src/api/cashier/user/certifiedmember.js @@ -0,0 +1,61 @@ +import request from '@/utils/request' + +// 查询固定等级列表 +export function listCertifiedMember(query) { + return request({ + url: '/business/userManager/certifiedMember/list', + method: 'get', + params: query + }) +} + +// 查询固定等级详细 +export function getCertifiedMember(id) { + return request({ + url: '/business/userManager/certifiedMember/' + id, + method: 'get' + }) +} + +// 根据会员id查询固定等级详细 +export function getCertifiedMemberByUserId(userId) { + return request({ + url: '/business/userManager/certifiedMember/userId/' + userId, + method: 'get' + }) +} + +// 新增固定等级 +export function addCertifiedMember(data) { + return request({ + url: '/business/userManager/certifiedMember', + method: 'post', + data: data + }) +} + +// 批量新增固定等级 +export function addCertifiedMembers(data) { + return request({ + url: '/business/userManager/certifiedMember/members', + method: 'post', + data: data + }) +} + +// 修改固定等级 +export function updateCertifiedMember(data) { + return request({ + url: '/business/userManager/certifiedMember', + method: 'put', + data: data + }) +} + +// 删除固定等级 +export function delCertifiedMember(id) { + return request({ + url: '/business/userManager/certifiedMember/' + id, + method: 'delete' + }) +} diff --git a/fuintCashierWeb/src/api/cashier/user/chainstoreconfig.js b/fuintCashierWeb/src/api/cashier/user/chainstoreconfig.js new file mode 100644 index 000000000..a02c0bac4 --- /dev/null +++ b/fuintCashierWeb/src/api/cashier/user/chainstoreconfig.js @@ -0,0 +1,19 @@ +import request from '@/utils/request' + +// 查询会员详细 +export function getChainStoreConfig() { + return request({ + url: '/business/userManager/chainStoreConfig', + method: 'get' + }) +} + +// 修改会员 +export function updateChainStoreConfig(data) { + return request({ + url: '/business/userManager/chainStoreConfig', + method: 'put', + data: data + }) +} + diff --git a/fuintCashierWeb/src/api/cashier/user/fixinglevel.js b/fuintCashierWeb/src/api/cashier/user/fixinglevel.js new file mode 100644 index 000000000..19c710bdc --- /dev/null +++ b/fuintCashierWeb/src/api/cashier/user/fixinglevel.js @@ -0,0 +1,53 @@ +import request from '@/utils/request' + +// 查询固定等级列表 +export function listFixingLevel(query) { + return request({ + url: '/business/userManager/fixingLevel/list', + method: 'get', + params: query + }) +} + +// 查询固定等级详细 +export function getFixingLevel(id) { + return request({ + url: '/business/userManager/fixingLevel/' + id, + method: 'get' + }) +} + +// 根据固定等级名称查询固定等级信息 +export function queryFixingLevel(data) { + return request({ + url: '/business/userManager/fixingLevel/getName', + method: 'post', + data: data + }) +} + +// 新增固定等级 +export function addFixingLevel(data) { + return request({ + url: '/business/userManager/fixingLevel', + method: 'post', + data: data + }) +} + +// 修改固定等级 +export function updateFixingLevel(data) { + return request({ + url: '/business/userManager/fixingLevel', + method: 'put', + data: data + }) +} + +// 删除固定等级 +export function delFixingLevel(id) { + return request({ + url: '/business/userManager/fixingLevel/' + id, + method: 'delete' + }) +} diff --git a/fuintCashierWeb/src/api/cashier/user/store.js b/fuintCashierWeb/src/api/cashier/user/store.js new file mode 100644 index 000000000..d0b3df836 --- /dev/null +++ b/fuintCashierWeb/src/api/cashier/user/store.js @@ -0,0 +1,26 @@ +import request from '@/utils/request' + +// 查询店铺详细 +export function ljStoreInfo() { + return request({ + url: '/business/storeInformation/store', + method: 'get' + }) +} + +// 查询店铺详细 +export function ljStoreList() { + return request({ + url: '/business/storeInformation/store/list', + method: 'get' + }) +} + +// 修改店铺信息 +export function updateStore(data) { + return request({ + url: '/business/storeInformation/store', + method: 'put', + data: data + }) +} diff --git a/fuintCashierWeb/src/api/cashier/user/sysconfig.js b/fuintCashierWeb/src/api/cashier/user/sysconfig.js new file mode 100644 index 000000000..3bafbbf6e --- /dev/null +++ b/fuintCashierWeb/src/api/cashier/user/sysconfig.js @@ -0,0 +1,9 @@ +import request from '@/utils/request' + +// 查询会员详细 +export function getSysConfig(key) { + return request({ + url: '/sysConfig/getByKey/' + key, + method: 'get' + }) +} diff --git a/fuintCashierWeb/src/api/cashier/user/user.js b/fuintCashierWeb/src/api/cashier/user/user.js new file mode 100644 index 000000000..9a4171acb --- /dev/null +++ b/fuintCashierWeb/src/api/cashier/user/user.js @@ -0,0 +1,78 @@ +import request from '@/utils/request' + +// 查询会员列表 +export function listUser(query) { + return request({ + url: '/business/userManager/user/list', + method: 'get', + params: query + }) +} + +// 查询会员统计列表 +export function listUserStatistic(query) { + return request({ + url: '/business/userManager/userStatistic/list', + method: 'get', + params: query + }) +} + +// 查询会员列表 +export function listStatistic(query) { + return request({ + url: '/business/userManager/user/statistic', + method: 'get', + params: query + }) +} + +// 查询会员详细 +export function getUser(id) { + return request({ + url: '/business/userManager/user/' + id, + method: 'get' + }) +} +// 根据手机号查询会员详细 +export function getUserMobile(data) { + return request({ + url: '/business/userManager/user/mobile' , + method: 'post', + data: data + }) +} + +// 新增会员 +export function addUser(data) { + return request({ + url: '/business/userManager/user', + method: 'post', + data: data + }) +} + +// 修改会员 +export function updateUser(data) { + return request({ + url: '/business/userManager/user', + method: 'put', + data: data + }) +} + +// 删除会员 +export function delUser(id) { + return request({ + url: '/business/userManager/user/' + id, + method: 'delete' + }) +} + +//下载示例文件 +export function exportUsers() { + return request({ + url: '/excel/export', + method: 'get' + }) +} diff --git a/fuintCashierWeb/src/api/cashier/user/usergrade.js b/fuintCashierWeb/src/api/cashier/user/usergrade.js new file mode 100644 index 000000000..7eeae693a --- /dev/null +++ b/fuintCashierWeb/src/api/cashier/user/usergrade.js @@ -0,0 +1,53 @@ +import request from '@/utils/request' + +// 查询会员等级列表 +export function listUserGrade(query) { + return request({ + url: '/business/userManager/userGrade/list', + method: 'get', + params: query + }) +} + +// 查询会员等级详细 +export function getUserGrade(id) { + return request({ + url: '/business/userManager/userGrade/' + id, + method: 'get' + }) +} + +// 根据会员等级名称查询会员等级信息 +export function queryUserGrade(data) { + return request({ + url: '/business/userManager/userGrade/getName', + method: 'post', + data: data + }) +} + +// 新增会员等级 +export function addUserGrade(data) { + return request({ + url: '/business/userManager/userGrade', + method: 'post', + data: data + }) +} + +// 修改会员等级 +export function updateUserGrade(data) { + return request({ + url: '/business/userManager/userGrade', + method: 'put', + data: data + }) +} + +// 删除会员等级 +export function delUserGrade(id) { + return request({ + url: '/business/userManager/userGrade/' + id, + method: 'delete' + }) +} diff --git a/fuintCashierWeb/src/views/cashier/NewComponents/Recharge.vue b/fuintCashierWeb/src/views/cashier/NewComponents/Recharge.vue index 9676ac10f..6df2752b0 100644 --- a/fuintCashierWeb/src/views/cashier/NewComponents/Recharge.vue +++ b/fuintCashierWeb/src/views/cashier/NewComponents/Recharge.vue @@ -3,9 +3,11 @@
- +
-
+
搜索
@@ -16,22 +18,54 @@ diff --git a/fuintCashierWeb/src/views/cashier/orderComponents/order_Oil.vue b/fuintCashierWeb/src/views/cashier/orderComponents/order_Oil.vue index ab1a1da44..5753d61b2 100644 --- a/fuintCashierWeb/src/views/cashier/orderComponents/order_Oil.vue +++ b/fuintCashierWeb/src/views/cashier/orderComponents/order_Oil.vue @@ -3,18 +3,91 @@ diff --git a/fuintCashierWeb/src/views/details/index.vue b/fuintCashierWeb/src/views/details/index.vue index 3d28c2fcd..8c436e8ef 100644 --- a/fuintCashierWeb/src/views/details/index.vue +++ b/fuintCashierWeb/src/views/details/index.vue @@ -1,66 +1,1185 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -