jk-GitHub-coder 4 rokov pred
rodič
commit
58a707fbf8

+ 9 - 9
YijiaRestful/src/main/java/com/platform/yijia/controller/ElectronicMembershipCardController.java

@@ -286,7 +286,7 @@ public class ElectronicMembershipCardController {
                 CustomerElectronicCard c = new CustomerElectronicCard();    //电子会员卡
                 c.setUnionId(unionId);
                 c.setStationId(stationId);
-                if(stationInfos.getCardEnabledFlagGroup().equals("1")){
+                if(StringUtils.isNotBlank(stationInfos.getCardRuleFlagGroup()) && stationInfos.getCardRuleFlagGroup().equals("1")){
                     c.setStationId(stationInfos.getGroupId());
                 }
                 c.setCardOilsType(cardOilsType);
@@ -545,11 +545,11 @@ public class ElectronicMembershipCardController {
                         if(stationInfos.getIntegralFlag().equals("1")){
                             //calculateIntegral.setStationId(stationInfos.getStationId());
                             calculateIntegralInfos = this.calculateIntegral(calculateIntegral);
+                            integral =calculateIntegralInfos.getIntegral();
                             //插入客户所得积分
                             customerPoints = this.insertUserIntegral(calculateIntegralInfos);
                             //推送积分
                             this.pushIntegral(customerPoints, calculateIntegral);
-                            integral =calculateIntegralInfos.getIntegral();
                         }
                     }
                     resultData = ResultData.success(CodeMsg.SUCCESS);
@@ -1312,7 +1312,7 @@ public class ElectronicMembershipCardController {
                             if (calculateIntegral.getReceivableAmt().compareTo(integralRuleDetail.getRuleTerms()) ==1 || calculateIntegral.getReceivableAmt().compareTo(integralRuleDetail.getRuleTerms()) ==0){
                                 BigDecimal divide = null;
                                 BigDecimal multiply = null;
-                                divide = calculateIntegral.getReceivableAmt().divide(integralRuleDetail.getSaleAmt(), 0, BigDecimal.ROUND_HALF_DOWN);
+                                divide = calculateIntegral.getReceivableAmt().divide(integralRuleDetail.getSaleAmt(), 0, BigDecimal.ROUND_DOWN);
                                 multiply = divide.multiply(integralRuleDetail.getIntegral());
                                 if(integralActivity !=null && integralActivity.equals("1") && datePickerTimeArray !=null && integralProportion !=null){
                                     String datePicker = integralRuleList.get(0).getDatePicker();    //获取日期类型
@@ -1347,7 +1347,7 @@ public class ElectronicMembershipCardController {
                                 BigDecimal divide = null;
                                 BigDecimal multiply = null;
                                 if(integralRuleDetail.getGread().equals("0")){      //等级为0时,表示所有人
-                                    divide = calculateIntegral.getAmt().divide(integralRuleDetail.getSaleAmt(), 0, BigDecimal.ROUND_HALF_DOWN);
+                                    divide = calculateIntegral.getAmt().divide(integralRuleDetail.getSaleAmt(), 0, BigDecimal.ROUND_DOWN);
                                     multiply = divide.multiply(integralRuleDetail.getIntegral());
                                     if(integralActivity !=null && integralActivity.equals("1") &&  datePickerTimeArray !=null && integralProportion !=null){
                                         String datePicker = integralRuleList.get(0).getDatePicker();
@@ -1377,7 +1377,7 @@ public class ElectronicMembershipCardController {
                                     logger.info("本次客户所得积分:" + integral);
                                     break;
                                 }else if(integralRuleDetail.getGread().equals(calculateIntegral.getCustomerGrade())){       //如果等级相同
-                                    divide = calculateIntegral.getAmt().divide(integralRuleDetail.getSaleAmt(), 0, BigDecimal.ROUND_HALF_DOWN);
+                                    divide = calculateIntegral.getAmt().divide(integralRuleDetail.getSaleAmt(), 0, BigDecimal.ROUND_DOWN);
                                     multiply = divide.multiply(integralRuleDetail.getIntegral());
                                     if(integralActivity !=null && integralActivity.equals("1") &&  datePickerTimeArray !=null && integralProportion !=null){
                                         String datePicker = integralRuleList.get(0).getDatePicker();
@@ -1413,7 +1413,7 @@ public class ElectronicMembershipCardController {
                                 BigDecimal divide = null;
                                 BigDecimal multiply = null;
                                 if(integralRuleDetail.getGread().equals("0")){
-                                    divide = calculateIntegral.getReceivableAmt().divide(integralRuleDetail.getSaleAmt(), 0, BigDecimal.ROUND_HALF_DOWN);
+                                    divide = calculateIntegral.getReceivableAmt().divide(integralRuleDetail.getSaleAmt(), 0, BigDecimal.ROUND_DOWN);
                                     multiply = divide.multiply(integralRuleDetail.getIntegral());
                                     if(integralActivity !=null && integralActivity.equals("1") && datePickerTimeArray !=null && integralProportion !=null){
                                         String datePicker = integralRuleList.get(0).getDatePicker();
@@ -1443,7 +1443,7 @@ public class ElectronicMembershipCardController {
                                     logger.info("本次客户所得积分:" + integral);
                                     break;
                                 }else if(integralRuleDetail.getGread().equals(calculateIntegral.getCustomerGrade())){
-                                    divide = calculateIntegral.getReceivableAmt().divide(integralRuleDetail.getSaleAmt(), 0, BigDecimal.ROUND_HALF_DOWN);
+                                    divide = calculateIntegral.getReceivableAmt().divide(integralRuleDetail.getSaleAmt(), 0, BigDecimal.ROUND_DOWN);
                                     multiply = divide.multiply(integralRuleDetail.getIntegral());
                                     if(integralActivity !=null && integralActivity.equals("1") && datePickerTimeArray !=null && integralProportion !=null){
                                         String datePicker = integralRuleList.get(0).getDatePicker();
@@ -1479,7 +1479,7 @@ public class ElectronicMembershipCardController {
                                 BigDecimal divide = null;
                                 BigDecimal multiply = null;
                                 if(integralRuleDetail.getGread().equals("0")){
-                                    divide = calculateIntegral.getOilLiters().divide(integralRuleDetail.getSaleAmt(), 0, BigDecimal.ROUND_HALF_DOWN);
+                                    divide = calculateIntegral.getOilLiters().divide(integralRuleDetail.getSaleAmt(), 0, BigDecimal.ROUND_DOWN);
                                     multiply = divide.multiply(integralRuleDetail.getIntegral());
                                     if(integralActivity !=null && integralActivity.equals("1") && datePickerTimeArray !=null && integralProportion !=null){
                                         String datePicker = integralRuleList.get(0).getDatePicker();
@@ -1509,7 +1509,7 @@ public class ElectronicMembershipCardController {
                                     logger.info("本次客户所得积分:" + integral);
                                     break;
                                 }else if(integralRuleDetail.getGread().equals(calculateIntegral.getCustomerGrade())){
-                                    divide = calculateIntegral.getOilLiters().divide(integralRuleDetail.getSaleAmt(), 0, BigDecimal.ROUND_HALF_DOWN);
+                                    divide = calculateIntegral.getOilLiters().divide(integralRuleDetail.getSaleAmt(), 0, BigDecimal.ROUND_DOWN);
                                     multiply = divide.multiply(integralRuleDetail.getIntegral());
                                     if(integralActivity !=null && integralActivity.equals("1") && datePickerTimeArray !=null && integralProportion !=null){
                                         String datePicker = integralRuleList.get(0).getDatePicker();

+ 29 - 22
YijiaRestful/src/main/java/com/platform/yijia/controller/IntegralShoppingMallController.java

@@ -366,29 +366,36 @@ public class IntegralShoppingMallController {
         StationDeviceManager stationDeviceManager = new StationDeviceManager();
         stationDeviceManager.setDeviceType("2");
         stationDeviceManager.setStationId(Integer.valueOf(map.get("stationId").toString()));
-        stationDeviceManager.setGunNo("1");
-        StationDeviceManager stationDeviceManagerInfo = stationService.getStationDeviceManager(stationDeviceManager);
-        if(stationDeviceManagerInfo !=null && stationDeviceManagerInfo.getPosFanoutExchange() !=null && stationDeviceManagerInfo.getPosQueue() !=null){
-            params.put("posFanoutExchange", stationDeviceManagerInfo.getPosFanoutExchange());
-            params.put("posQueue", stationDeviceManagerInfo.getPosQueue());
-            params.put("tusn", stationDeviceManagerInfo.getDeviceNo());
+//        stationDeviceManager.setGunNo("1");
+//        StationDeviceManager stationDeviceManagerInfo = stationService.getStationDeviceManager(stationDeviceManager);
+//        if(stationDeviceManagerInfo !=null && stationDeviceManagerInfo.getPosFanoutExchange() !=null && stationDeviceManagerInfo.getPosQueue() !=null){
+//            params.put("posFanoutExchange", stationDeviceManagerInfo.getPosFanoutExchange());
+//            params.put("posQueue", stationDeviceManagerInfo.getPosQueue());
+//            params.put("tusn", stationDeviceManagerInfo.getDeviceNo());
+//            params.put("printSetting", printSetting);
+//        }
+        List<StationDeviceManager> stationDeviceManagerList = stationService.getStationDeviceManagerList(stationDeviceManager);
+        if(stationDeviceManagerList != null && stationDeviceManagerList.size()>0){
+            params.put("posFanoutExchange", stationDeviceManagerList.get(0).getPosFanoutExchange());
+            params.put("posQueue", stationDeviceManagerList.get(0).getPosQueue());
+            params.put("tusn", stationDeviceManagerList.get(0).getDeviceNo());
             params.put("printSetting", printSetting);
-        }
-        List<Map<String, Object>> list = new ArrayList<>();
-        list.add(map);
-        Map<String, Object> mm = new HashMap<>();
-        mm.put("contentData", list);
-        params.put("messageContent", mm);
-        //开始推送消息
-        logger.info("开始推送消息:" +JSONObject.toJSONString(params));
-        String resultString = PosPrinterUtil.sendPosPrintDirectMessage(params);
-        JSONObject jsonObject_pos = JSONObject.parseObject(resultString);
-        if(jsonObject_pos.containsKey("code") && jsonObject_pos.get("code").toString().equals("200")){
-            //如果打印成功 添加小票数量
-            IntegralOrder integralOrder = new IntegralOrder();
-            integralOrder.setIntegralOrderNo(map.get("orderNo").toString());
-            integralOrder.setPrinterStatus("1");
-            integralOrderService.updateIntegralOrder(integralOrder);
+            List<Map<String, Object>> list = new ArrayList<>();
+            list.add(map);
+            Map<String, Object> mm = new HashMap<>();
+            mm.put("contentData", list);
+            params.put("messageContent", mm);
+            //开始推送消息
+            logger.info("开始推送消息:" +JSONObject.toJSONString(params));
+            String resultString = PosPrinterUtil.sendPosPrintDirectMessage(params);
+            JSONObject jsonObject_pos = JSONObject.parseObject(resultString);
+            if(jsonObject_pos.containsKey("code") && jsonObject_pos.get("code").toString().equals("200")){
+                //如果打印成功 添加小票数量
+                IntegralOrder integralOrder = new IntegralOrder();
+                integralOrder.setIntegralOrderNo(map.get("orderNo").toString());
+                integralOrder.setPrinterStatus("1");
+                integralOrderService.updateIntegralOrder(integralOrder);
+            }
         }
     }
 

+ 12 - 7
YijiaRestful/src/main/java/com/platform/yijia/controller/PayController.java

@@ -166,6 +166,11 @@ public class PayController {
             //2是支付宝
             appUserInfo.setALiId(openId);
         }
+        //appUserInfo.setStationId(stationInfos.getGroupId());
+        StationInfo stationInfo = new StationInfo();
+        stationInfo.setStationId(Integer.valueOf(payInfoRequest.getStationId()));
+        StationInfo stationInfos = stationService.selectStationInfo(stationInfo);
+        appUserInfo.setStationId(stationInfos.getGroupId());
         AppUserInfo appUserInfos =appUserInfoService.getAppUserInfo(appUserInfo);
         if(appUserInfos!=null){
             //调用聚合支付
@@ -1025,7 +1030,7 @@ public class PayController {
                             if (calculateIntegral.getReceivableAmt().compareTo(integralRuleDetail.getRuleTerms()) ==1 || calculateIntegral.getReceivableAmt().compareTo(integralRuleDetail.getRuleTerms()) ==0){
                                 BigDecimal divide = null;
                                 BigDecimal multiply = null;
-                                divide = calculateIntegral.getReceivableAmt().divide(integralRuleDetail.getSaleAmt(), 0, BigDecimal.ROUND_HALF_DOWN);
+                                divide = calculateIntegral.getReceivableAmt().divide(integralRuleDetail.getSaleAmt(), 0, BigDecimal.ROUND_DOWN);
                                 multiply = divide.multiply(integralRuleDetail.getIntegral());
                                 if(integralActivity !=null && integralActivity.equals("1") && datePickerTimeArray !=null && integralProportion !=null){
                                     String datePicker = integralRuleList.get(0).getDatePicker();    //获取日期类型
@@ -1060,7 +1065,7 @@ public class PayController {
                                 BigDecimal divide = null;
                                 BigDecimal multiply = null;
                                 if(integralRuleDetail.getGread().equals("0")){      //等级为0时,表示所有人
-                                    divide = calculateIntegral.getAmt().divide(integralRuleDetail.getSaleAmt(), 0, BigDecimal.ROUND_HALF_DOWN);
+                                    divide = calculateIntegral.getAmt().divide(integralRuleDetail.getSaleAmt(), 0, BigDecimal.ROUND_DOWN);
                                     multiply = divide.multiply(integralRuleDetail.getIntegral());
                                     if(integralActivity !=null && integralActivity.equals("1") &&  datePickerTimeArray !=null && integralProportion !=null){
                                         String datePicker = integralRuleList.get(0).getDatePicker();
@@ -1090,7 +1095,7 @@ public class PayController {
                                     logger.info("本次客户所得积分:" + integral);
                                     break;
                                 }else if(integralRuleDetail.getGread().equals(calculateIntegral.getCustomerGrade())){       //如果等级相同
-                                    divide = calculateIntegral.getAmt().divide(integralRuleDetail.getSaleAmt(), 0, BigDecimal.ROUND_HALF_DOWN);
+                                    divide = calculateIntegral.getAmt().divide(integralRuleDetail.getSaleAmt(), 0, BigDecimal.ROUND_DOWN);
                                     multiply = divide.multiply(integralRuleDetail.getIntegral());
                                     if(integralActivity !=null && integralActivity.equals("1") &&  datePickerTimeArray !=null && integralProportion !=null){
                                         String datePicker = integralRuleList.get(0).getDatePicker();
@@ -1126,7 +1131,7 @@ public class PayController {
                                 BigDecimal divide = null;
                                 BigDecimal multiply = null;
                                 if(integralRuleDetail.getGread().equals("0")){
-                                    divide = calculateIntegral.getReceivableAmt().divide(integralRuleDetail.getSaleAmt(), 0, BigDecimal.ROUND_HALF_DOWN);
+                                    divide = calculateIntegral.getReceivableAmt().divide(integralRuleDetail.getSaleAmt(), 0, BigDecimal.ROUND_DOWN);
                                     multiply = divide.multiply(integralRuleDetail.getIntegral());
                                     if(integralActivity !=null && integralActivity.equals("1") && datePickerTimeArray !=null && integralProportion !=null){
                                         String datePicker = integralRuleList.get(0).getDatePicker();
@@ -1156,7 +1161,7 @@ public class PayController {
                                     logger.info("本次客户所得积分:" + integral);
                                     break;
                                 }else if(integralRuleDetail.getGread().equals(calculateIntegral.getCustomerGrade())){
-                                    divide = calculateIntegral.getReceivableAmt().divide(integralRuleDetail.getSaleAmt(), 0, BigDecimal.ROUND_HALF_DOWN);
+                                    divide = calculateIntegral.getReceivableAmt().divide(integralRuleDetail.getSaleAmt(), 0, BigDecimal.ROUND_DOWN);
                                     multiply = divide.multiply(integralRuleDetail.getIntegral());
                                     if(integralActivity !=null && integralActivity.equals("1") && datePickerTimeArray !=null && integralProportion !=null){
                                         String datePicker = integralRuleList.get(0).getDatePicker();
@@ -1192,7 +1197,7 @@ public class PayController {
                                 BigDecimal divide = null;
                                 BigDecimal multiply = null;
                                 if(integralRuleDetail.getGread().equals("0")){
-                                    divide = calculateIntegral.getOilLiters().divide(integralRuleDetail.getSaleAmt(), 0, BigDecimal.ROUND_HALF_DOWN);
+                                    divide = calculateIntegral.getOilLiters().divide(integralRuleDetail.getSaleAmt(), 0, BigDecimal.ROUND_DOWN);
                                     multiply = divide.multiply(integralRuleDetail.getIntegral());
                                     if(integralActivity !=null && integralActivity.equals("1") && datePickerTimeArray !=null && integralProportion !=null){
                                         String datePicker = integralRuleList.get(0).getDatePicker();
@@ -1222,7 +1227,7 @@ public class PayController {
                                     logger.info("本次客户所得积分:" + integral);
                                     break;
                                 }else if(integralRuleDetail.getGread().equals(calculateIntegral.getCustomerGrade())){
-                                    divide = calculateIntegral.getOilLiters().divide(integralRuleDetail.getSaleAmt(), 0, BigDecimal.ROUND_HALF_DOWN);
+                                    divide = calculateIntegral.getOilLiters().divide(integralRuleDetail.getSaleAmt(), 0, BigDecimal.ROUND_DOWN);
                                     multiply = divide.multiply(integralRuleDetail.getIntegral());
                                     if(integralActivity !=null && integralActivity.equals("1") && datePickerTimeArray !=null && integralProportion !=null){
                                         String datePicker = integralRuleList.get(0).getDatePicker();

+ 1 - 0
YijiaRestful/src/main/java/com/platform/yijia/controller/PayOrderController.java

@@ -70,6 +70,7 @@ public class PayOrderController {
                 //获取油站图片和名称
                 resultMap.put("stationPic", stationInfos.getStationPic());
                 resultMap.put("stationName", stationInfos.getStationName());
+                appUserInfo.setStationId(stationInfos.getGroupId());
                 AppUserInfo appUserInfos = appUserInfoService.getAppUserInfo(appUserInfo);
                 if(appUserInfos !=null){
                     //payOrderRequest存放参数原因:用于其他方法形参

+ 3 - 0
YijiaRestful/src/main/java/com/platform/yijia/dao/StationInfoMapper.java

@@ -20,6 +20,9 @@ public interface StationInfoMapper {
     //获取油站的油枪所绑定的打印设备
     StationDeviceManager getStationDeviceManager(StationDeviceManager stationDeviceManager);
 
+    //获取油站的油枪所绑定的打印设备列
+    List<StationDeviceManager> getStationDeviceManagerList(StationDeviceManager stationDeviceManager);
+
     //获取油站信息
     StationInfo selectStationInfo(StationInfo stationInfo);
     //获取油站的打印机

+ 3 - 0
YijiaRestful/src/main/java/com/platform/yijia/service/StationService.java

@@ -19,6 +19,9 @@ public interface StationService {
     //获取油站的油枪所绑定的打印设备
     StationDeviceManager getStationDeviceManager(StationDeviceManager stationDeviceManager);
 
+    //获取油站的油枪所绑定的打印设备列
+    List<StationDeviceManager> getStationDeviceManagerList(StationDeviceManager stationDeviceManager);
+
     //获取油站信息
     StationInfo selectStationInfo(StationInfo stationInfo);
 

+ 7 - 0
YijiaRestful/src/main/java/com/platform/yijia/service/impl/StationServiceImpl.java

@@ -34,12 +34,19 @@ public class StationServiceImpl implements StationService {
         return stationInfoMapper.getStationListByAppId(stationInfo);
     }
 
+
     //获取油站的某个油品的价格和营销方案信息
     @Override
     public Map<String, Object> selectStationOilPriceAndDiscountSetting(Map<String, Object> map) {
         return stationInfoMapper.selectStationOilPriceAndDiscountSetting(map);
     }
 
+    //获取油站的油枪所绑定的打印设备列表
+    @Override
+    public List<StationDeviceManager> getStationDeviceManagerList(StationDeviceManager stationDeviceManager) {
+        return stationInfoMapper.getStationDeviceManagerList(stationDeviceManager);
+    }
+
     //获取油站的油枪所绑定的打印设备
     @Override
     public StationDeviceManager getStationDeviceManager(StationDeviceManager stationDeviceManager) {

+ 31 - 0
YijiaRestful/src/main/resources/mapper/StationInfoMapper.xml

@@ -620,6 +620,37 @@
   </select>
 
   <!--获取油站的打印设备信息-->
+  <select id="getStationDeviceManagerList" parameterType="com.platform.yijia.pojo.StationDeviceManager" resultType="com.platform.yijia.pojo.StationDeviceManager">
+    SELECT
+      device_id                   AS deviceId,
+      device_no                   AS deviceNo,
+      device_name                 AS deviceName,
+      station_id                  AS stationId,
+      device_type                 AS deviceType,
+      device_serial_num           AS deviceSerialNum,
+      gun_no                      AS gunNo,
+      device_factory              AS deviceFactory,
+      pos_fanout_exchange         AS posFanoutExchange,
+      pos_queue                   AS posQueue
+    FROM  station_device_manage
+    <where>
+      <if test="stationId != null and stationId !=''">
+        station_id = #{stationId}
+      </if>
+      <if test="deviceNo != null and deviceNo !=''">
+        AND device_no = #{deviceNo}
+      </if>
+      <if test="deviceType != null and deviceType !=''">
+        AND device_type = #{deviceType}
+      </if>
+      <if test="gunNo != null and gunNo !=''">
+        AND FIND_IN_SET(#{gunNo}, gun_no)
+      </if>
+    </where>
+    ORDER BY device_no
+  </select>
+
+  <!--获取油站的打印设备信息-->
   <select id="getStationDeviceManager" parameterType="com.platform.yijia.pojo.StationDeviceManager" resultType="com.platform.yijia.pojo.StationDeviceManager">
     SELECT
         device_id                   AS deviceId,

+ 15 - 12
YijiaRestful/src/test/java/com/palatform/yijia/test.java

@@ -15,18 +15,21 @@ public class test {
     public static void main(String[] args) {
 
 
-        BigDecimal amt = new BigDecimal("2").subtract(new BigDecimal("2"));
-        amt =amt.signum() == -1 ? new BigDecimal(0): amt;
-        System.out.println(amt);
-
-        String data = "123";
-        String pwd = "LAnZ8RRSkIY0EGVYheu2IjEk";
-        String encryptDataStr= DESUtils.encrypt(data, pwd);
-        System.out.println("加密后得到的密文......");
-        System.out.println(encryptDataStr);
-        String decryptDataStr=DESUtils.decrypt(encryptDataStr, pwd);
-        System.out.println("解密后得到的明文......");
-        System.out.println(decryptDataStr);
+//        BigDecimal amt = new BigDecimal("2").subtract(new BigDecimal("2"));
+//        amt =amt.signum() == -1 ? new BigDecimal(0): amt;
+//        System.out.println(amt);
+//
+//        String data = "123";
+//        String pwd = "LAnZ8RRSkIY0EGVYheu2IjEk";
+//        String encryptDataStr= DESUtils.encrypt(data, pwd);
+//        System.out.println("加密后得到的密文......");
+//        System.out.println(encryptDataStr);
+//        String decryptDataStr=DESUtils.decrypt(encryptDataStr, pwd);
+//        System.out.println("解密后得到的明文......");
+//        System.out.println(decryptDataStr);
+
+        BigDecimal divide = new BigDecimal("8.55").divide(new BigDecimal("1"), 0, BigDecimal.ROUND_DOWN);
+        System.out.println(divide);
 
 
     }