diff --git a/fuintBackend/fuint-application/src/main/java/com/fuint/api/fuyou/controller/FyPayController.java b/fuintBackend/fuint-application/src/main/java/com/fuint/api/fuyou/controller/FyPayController.java index f230e517d..e439a5794 100644 --- a/fuintBackend/fuint-application/src/main/java/com/fuint/api/fuyou/controller/FyPayController.java +++ b/fuintBackend/fuint-application/src/main/java/com/fuint/api/fuyou/controller/FyPayController.java @@ -4,6 +4,10 @@ import com.fuint.api.fuyou.service.FyPayService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.util.Enumeration; +import java.util.HashMap; import java.util.Map; @RestController @@ -37,6 +41,26 @@ public class FyPayController { return map; } + // 接收支付平台异步通知的接口 + @PostMapping("/notify") + public String notifyUrl(@RequestBody HttpServletRequest request,@RequestBody HttpServletResponse response) { + System.out.println(request+"111"); + System.out.println(response+"222"); +// Map paramMap = new HashMap<>(); +// Enumeration parameterNames = request.getParameterNames(); +// while(parameterNames.hasMoreElements()) { +// String parameterName = (String) parameterNames.nextElement(); +// paramMap.put(parameterName, request.getParameter(parameterName)); +// } +// boolean isSuccess = processNotify(paramMap); // 处理支付结果并返回成功或失败状态 +// if(isSuccess) { +// return "success"; // 返回成功状态,通知支付平台异步通知已成功接收 +// } else { +// return "fail"; // 返回失败状态,通知支付平台异步通知已失败 +// } + return "11111111"; + } + /** * 退款 成功 result_msg 显示success * result_code显示000000 diff --git a/fuintBackend/fuint-application/src/main/java/com/fuint/api/fuyou/entity/Builder.java b/fuintBackend/fuint-application/src/main/java/com/fuint/api/fuyou/entity/Builder.java index 5bf01f022..b404a03e3 100644 --- a/fuintBackend/fuint-application/src/main/java/com/fuint/api/fuyou/entity/Builder.java +++ b/fuintBackend/fuint-application/src/main/java/com/fuint/api/fuyou/entity/Builder.java @@ -38,7 +38,7 @@ public class Builder { Calendar calendar = Calendar.getInstance(); // sdf_no.format(calendar.getTime()) + (int) (random.nextDouble() * 100000) map.put("mchnt_order_no", ""); - map.put("curr_type", ""); + map.put("curr_type", "CNY"); map.put("order_amt", "1"); map.put("term_ip", Const.term_ip); SimpleDateFormat sdf_ts = new SimpleDateFormat("yyyyMMddHHmmss"); @@ -71,6 +71,49 @@ public class Builder { return map; } + /** + * 小程序 + * + * @return + */ + public static Map buildFuiou23() { + Map map = new HashMap<>(); + + map.put("version", Const.version); + map.put("ins_cd", Const.ins_cd); + map.put("mchnt_cd", Const.mchnt_cd); + map.put("term_id", Const.term_id); + map.put("random_str", randomNumberGenerator.nextBytes().toHex()); + map.put("sign", ""); + map.put("goods_des", Const.goods_des); + map.put("goods_detail", ""); + map.put("goods_tag", ""); + map.put("product_id", ""); + map.put("addn_inf", ""); + map.put("mchnt_order_no", ""); + map.put("curr_type", "CNY"); + map.put("openid", ""); + map.put("order_amt", "1"); + map.put("term_ip", Const.term_ip); + Calendar calendar = Calendar.getInstance(); + SimpleDateFormat sdf_ts = new SimpleDateFormat("yyyyMMddHHmmss"); + map.put("txn_begin_ts",sdf_ts.format(calendar.getTime())); + map.put("notify_url", Const.notify_url); + map.put("limit_pay", ""); + map.put("trade_type", Const.trade_type); + map.put("sub_openid", ""); + map.put("sub_appid", Const.sub_appid); + map.put("reserved_expire_minute", "1"); + map.put("reserved_fy_term_id", ""); + map.put("reserved_fy_term_type", ""); + map.put("reserved_txn_bonus", ""); + map.put("reserved_fy_term_sn", ""); + map.put("reserved_device_info", ""); + + return map; + } + + /** * 退款 * diff --git a/fuintBackend/fuint-application/src/main/java/com/fuint/api/fuyou/entity/Const.java b/fuintBackend/fuint-application/src/main/java/com/fuint/api/fuyou/entity/Const.java index c013fb352..8fadcc7fb 100644 --- a/fuintBackend/fuint-application/src/main/java/com/fuint/api/fuyou/entity/Const.java +++ b/fuintBackend/fuint-application/src/main/java/com/fuint/api/fuyou/entity/Const.java @@ -35,18 +35,23 @@ public class Const { public static String auth_code = ""; // 交易关闭时间 public static Integer reserved_expire_minute = 1; +// 小程序appid + public static String sub_appid = "wxba517a9bac38fe92"; +// 订单类型 小程序等 + public static String trade_type = "LETPAY"; //机构公钥 public static String INS_PUBLIC_KEY=""; //异步通知(回调地址) +// public static String notify_url = "https://www.fuint.cn/fuint-application/clientApi/pay/aliPayCallback"; public static String notify_url = "http://www.wrx.cn"; //下单 public static String fuiou_21_url = "https://fundwx.fuiou.com/preCreate"; //扫码 public static String fuiou_22_url = "https://fundwx.fuiou.com/micropay"; - //公众号/服务窗统一下单 + //公众号/服务窗/小程序统一下单 public static String fuiou_23_url = "https://fundwx.fuiou.com/wxPreCreate"; //退款 public static String fuiou_24_url = "https://fundwx.fuiou.com/commonRefund"; diff --git a/fuintBackend/fuint-application/src/main/java/com/fuint/api/fuyou/service/FyPayService.java b/fuintBackend/fuint-application/src/main/java/com/fuint/api/fuyou/service/FyPayService.java index a06d749f6..d458fbeb0 100644 --- a/fuintBackend/fuint-application/src/main/java/com/fuint/api/fuyou/service/FyPayService.java +++ b/fuintBackend/fuint-application/src/main/java/com/fuint/api/fuyou/service/FyPayService.java @@ -17,6 +17,13 @@ public interface FyPayService { */ public Map queryOrder(Map map) throws Exception; + /** + * 小程序 + * @return + * @throws Exception + */ + public Map applet(Map map) throws Exception; + /** * 退款 * @return diff --git a/fuintBackend/fuint-application/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 index 8f3987ba9..2cb16708a 100644 --- a/fuintBackend/fuint-application/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 @@ -11,6 +11,7 @@ import com.fuint.api.fuyou.entity.MerchantConfig; import com.fuint.api.fuyou.entity.Message; import com.fuint.api.fuyou.service.FyPayService; import com.fuint.api.fuyou.service.MerchantConfigService; +import com.fuint.api.fuyou.util.HttpUtils; import com.fuint.api.fuyou.util.Utils; import com.fuint.business.integral.service.IntegralOrdersService; import com.fuint.business.marketingActivity.cardFavorable.entity.CardFavorableRecord; @@ -19,14 +20,16 @@ import com.fuint.business.marketingActivity.cardFule.service.CardFuelRecordServi import com.fuint.business.marketingActivity.cardValue.service.CardValueRecordService; import com.fuint.business.order.entity.*; import com.fuint.business.order.service.*; -import com.fuint.common.dto.AccountInfo; -import com.fuint.common.util.TokenUtil; -import io.swagger.models.auth.In; import lombok.extern.slf4j.Slf4j; +import org.dom4j.Document; +import org.dom4j.DocumentHelper; +import org.dom4j.Element; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.net.URLDecoder; import javax.annotation.Resource; +import java.net.URLEncoder; import java.util.*; @Service @@ -297,6 +300,45 @@ public class FyPayServiceImpl implements FyPayService { return resMap; } + @Override + public Map applet(Map map1) throws Exception { + String publicKey = map1.get("publicKey"); + String privateKey = map1.get("privateKey"); + Const.INS_PUBLIC_KEY = publicKey; + Const.INS_PRIVATE_KEY = privateKey; + String orderNo = map1.get("orderNo"); + String payType = "WECHAT"; + String allAmount = map1.get("allAmount"); + String insCd = map1.get("insCd"); + String mchntCd = map1.get("mchntCd"); + String goodsDes = map1.get("goodsDes"); + Map map = Builder.buildFuiou23(); + map.put("mchnt_order_no",orderNo); + map.put("order_type",payType); + map.put("order_amt", allAmount); + map.put("ins_cd", insCd); + map.put("mchnt_cd", mchntCd); + map.put("goods_des", goodsDes); + map.put("openid", map1.get("openId")); + + // 请求报文 + String reqBody = Message.requestMsg(map); +// 响应报文 + String rspXml = Message.responseMsg(reqBody,Const.fuiou_23_url); + System.out.println("1+"+reqBody); + System.out.println("2+"+rspXml); + //响应报文验签 + Map resMap = Utils.xmlStr2Map(rspXml); + + String str = resMap.get("sign"); + if (Utils.verifySign(resMap, str)){ + + } + System.out.println(resMap); + + return resMap; + } + @Override public Map refund(Map map1) throws Exception { String orderNo = map1.get("orderNo"); diff --git a/fuintBackend/fuint-application/src/main/java/com/fuint/api/fuyou/util/HttpUtils.java b/fuintBackend/fuint-application/src/main/java/com/fuint/api/fuyou/util/HttpUtils.java new file mode 100644 index 000000000..99a9a57dd --- /dev/null +++ b/fuintBackend/fuint-application/src/main/java/com/fuint/api/fuyou/util/HttpUtils.java @@ -0,0 +1,79 @@ +package com.fuint.api.fuyou.util; + +import com.fuint.api.fuyou.entity.Const; +import org.apache.http.HttpEntity; +import org.apache.http.NameValuePair; +import org.apache.http.client.ClientProtocolException; +import org.apache.http.client.entity.UrlEncodedFormEntity; +import org.apache.http.client.methods.CloseableHttpResponse; +import org.apache.http.client.methods.HttpPost; +import org.apache.http.impl.client.CloseableHttpClient; +import org.apache.http.impl.client.HttpClients; +import org.apache.http.message.BasicNameValuePair; +import org.apache.http.util.EntityUtils; + +import java.io.IOException; +import java.io.UnsupportedEncodingException; +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; +import java.util.Map; + +public class HttpUtils { + + /** + * 发送 post请求访问本地应用并根据传递参数不同返回不同结果 + */ + public void post(String url, Map map, StringBuffer result) { + // 创建默认的httpClient实例. + CloseableHttpClient httpclient = HttpClients.createDefault(); + // 创建httppost + HttpPost httppost = new HttpPost(url); + // 创建参数队列 + List formparams = new ArrayList<>(); + + Iterator it=map.keySet().iterator(); + while(it.hasNext()){ + String key; + String value; + key=it.next().toString(); + value=map.get(key); + + formparams.add(new BasicNameValuePair(key, value)); + } + + UrlEncodedFormEntity uefEntity; + try { + uefEntity = new UrlEncodedFormEntity(formparams, Const.charset); + httppost.setEntity(uefEntity); + + System.out.println("提交请求 " + httppost.getURI()); + CloseableHttpResponse response = httpclient.execute(httppost); + try { + HttpEntity entity = response.getEntity(); + + if (entity != null && result != null) { + result.append(EntityUtils.toString(entity, Const.charset)); + } + + // 打印响应状态 + System.out.println(response.getStatusLine()); + } finally { + response.close(); + } + } catch (ClientProtocolException e) { + e.printStackTrace(); + } catch (UnsupportedEncodingException e1) { + e1.printStackTrace(); + } catch (IOException e) { + e.printStackTrace(); + } finally { + // 关闭连接,释放资源 + try { + httpclient.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } +} \ No newline at end of file diff --git a/fuintBackend/fuint-application/src/main/java/com/fuint/api/rocketMQ/test/SyncProducer.java b/fuintBackend/fuint-application/src/main/java/com/fuint/api/rocketMQ/test/SyncProducer.java new file mode 100644 index 000000000..3d5ff2b58 --- /dev/null +++ b/fuintBackend/fuint-application/src/main/java/com/fuint/api/rocketMQ/test/SyncProducer.java @@ -0,0 +1,48 @@ +package com.fuint.api.rocketMQ.test; + +import org.apache.rocketmq.client.producer.DefaultMQProducer; +import org.apache.rocketmq.client.producer.SendResult; +import org.apache.rocketmq.client.producer.SendStatus; +import org.apache.rocketmq.common.message.Message; + +import java.util.concurrent.TimeUnit; + +/** + * 发送同步消息 + */ +public class SyncProducer { + + public static void main(String[] args) throws Exception { + //1.创建消息生产者producer,并制定生产者组名 + DefaultMQProducer producer = new DefaultMQProducer("group1"); + //2.指定Nameserver地址 + producer.setNamesrvAddr("39.104.58.101:9876"); + //3.启动producer + producer.start(); + + for (int i = 0; i < 10; i++) { + //4.创建消息对象,指定主题Topic、Tag和消息体 + /** + * 参数一:消息主题Topic + * 参数二:消息Tag + * 参数三:消息内容 + */ + Message msg = new Message("springboot-mq", "Tag1", ("Hello World" + i).getBytes()); + //5.发送消息 + SendResult result = producer.send(msg); + //发送状态 + SendStatus status = result.getSendStatus(); + + System.out.println("发送结果:" + result); + + //线程睡1秒 + TimeUnit.SECONDS.sleep(1); + } + + //6.关闭生产者producer + producer.shutdown(); + + } +} + + diff --git a/fuintBackend/fuint-application/src/main/java/com/fuint/business/marketingActivity/activeConsumption/controller/ActiveConsumptionController.java b/fuintBackend/fuint-application/src/main/java/com/fuint/business/marketingActivity/activeConsumption/controller/ActiveConsumptionController.java index 2faef0233..6aa945cde 100644 --- a/fuintBackend/fuint-application/src/main/java/com/fuint/business/marketingActivity/activeConsumption/controller/ActiveConsumptionController.java +++ b/fuintBackend/fuint-application/src/main/java/com/fuint/business/marketingActivity/activeConsumption/controller/ActiveConsumptionController.java @@ -68,6 +68,17 @@ public class ActiveConsumptionController extends BaseController { return getSuccessResult(this.activeConsumptionService.getOneById(id)); } + /** + * 通过id查询数据集合 + * + * @param id 主键 + * @return 单条数据 + */ + @GetMapping("/list/{id}") + public ResponseObject selectList(@PathVariable Serializable id) { + return getSuccessResult(this.activeConsumptionChildService.selectList(id)); + } + /** * 新增数据 * diff --git a/fuintBackend/fuint-application/src/main/java/com/fuint/business/marketingActivity/activeConsumption/entity/ActiveConsumption.java b/fuintBackend/fuint-application/src/main/java/com/fuint/business/marketingActivity/activeConsumption/entity/ActiveConsumption.java index 3e6c832f6..b4566c640 100644 --- a/fuintBackend/fuint-application/src/main/java/com/fuint/business/marketingActivity/activeConsumption/entity/ActiveConsumption.java +++ b/fuintBackend/fuint-application/src/main/java/com/fuint/business/marketingActivity/activeConsumption/entity/ActiveConsumption.java @@ -4,6 +4,7 @@ import java.util.Date; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.extension.activerecord.Model; import com.fasterxml.jackson.annotation.JsonFormat; @@ -16,6 +17,7 @@ import java.io.Serializable; * @since 2023-11-10 10:44:58 */ @SuppressWarnings("serial") +@TableName("active_consumption") public class ActiveConsumption extends Model { //主键id @TableId(type = IdType.AUTO) diff --git a/fuintBackend/fuint-application/src/main/java/com/fuint/business/marketingActivity/activeConsumption/mapper/ActiveConsumptionChildMapper.java b/fuintBackend/fuint-application/src/main/java/com/fuint/business/marketingActivity/activeConsumption/mapper/ActiveConsumptionChildMapper.java index ce5c12d98..15882405c 100644 --- a/fuintBackend/fuint-application/src/main/java/com/fuint/business/marketingActivity/activeConsumption/mapper/ActiveConsumptionChildMapper.java +++ b/fuintBackend/fuint-application/src/main/java/com/fuint/business/marketingActivity/activeConsumption/mapper/ActiveConsumptionChildMapper.java @@ -3,6 +3,9 @@ package com.fuint.business.marketingActivity.activeConsumption.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.fuint.business.marketingActivity.activeConsumption.entity.ActiveConsumptionChild; +import java.io.Serializable; +import java.util.List; + /** * 消费有礼活动子表(存放兑换物品)(ActiveConsumptionChild)表数据库访问层 * @@ -11,4 +14,6 @@ import com.fuint.business.marketingActivity.activeConsumption.entity.ActiveConsu */ public interface ActiveConsumptionChildMapper extends BaseMapper { + + List selectConsumptionChilds(Serializable id); } diff --git a/fuintBackend/fuint-application/src/main/java/com/fuint/business/marketingActivity/activeConsumption/mapper/ActiveConsumptionMapper.java b/fuintBackend/fuint-application/src/main/java/com/fuint/business/marketingActivity/activeConsumption/mapper/ActiveConsumptionMapper.java index f890d91fb..8090731e9 100644 --- a/fuintBackend/fuint-application/src/main/java/com/fuint/business/marketingActivity/activeConsumption/mapper/ActiveConsumptionMapper.java +++ b/fuintBackend/fuint-application/src/main/java/com/fuint/business/marketingActivity/activeConsumption/mapper/ActiveConsumptionMapper.java @@ -1,7 +1,12 @@ package com.fuint.business.marketingActivity.activeConsumption.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.fuint.business.marketingActivity.activeConsumption.entity.ActiveConsumption; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** * 消费有礼活动(ActiveConsumption)表数据库访问层 @@ -11,5 +16,6 @@ import com.fuint.business.marketingActivity.activeConsumption.entity.ActiveConsu */ public interface ActiveConsumptionMapper extends BaseMapper { + IPage selectConsumptions(Page page, @Param("activeConsumption") ActiveConsumption activeConsumption); } diff --git a/fuintBackend/fuint-application/src/main/java/com/fuint/business/marketingActivity/activeConsumption/mapper/xml/ActiveConsumptionChildMapper.xml b/fuintBackend/fuint-application/src/main/java/com/fuint/business/marketingActivity/activeConsumption/mapper/xml/ActiveConsumptionChildMapper.xml new file mode 100644 index 000000000..49ecd96a0 --- /dev/null +++ b/fuintBackend/fuint-application/src/main/java/com/fuint/business/marketingActivity/activeConsumption/mapper/xml/ActiveConsumptionChildMapper.xml @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/fuintBackend/fuint-application/src/main/java/com/fuint/business/marketingActivity/activeConsumption/mapper/xml/ActiveConsumptionMapper.xml b/fuintBackend/fuint-application/src/main/java/com/fuint/business/marketingActivity/activeConsumption/mapper/xml/ActiveConsumptionMapper.xml index 31b5b7c30..9a4a82667 100644 --- a/fuintBackend/fuint-application/src/main/java/com/fuint/business/marketingActivity/activeConsumption/mapper/xml/ActiveConsumptionMapper.xml +++ b/fuintBackend/fuint-application/src/main/java/com/fuint/business/marketingActivity/activeConsumption/mapper/xml/ActiveConsumptionMapper.xml @@ -2,46 +2,55 @@ - + - - - + - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - select - og.id, og.gun_name, og.tank_id, og.status, og.store_id, og.create_time, og.update_time, og.create_by, og.update_by, og.number_id, ot.tank_name, - og.oil_machine_gun_number - from oil_gun og left join oil_tank ot on og.tank_id = ot.id + * + from active_consumption - - and og.id = #{oilGun.id} + + and status = #{activeConsumption.status} - - and og.gun_name = #{oilGun.gunName} + + and isonline = #{activeConsumption.isonline} - - and og.tank_id = #{oilGun.tankId} + + and store_id = #{activeConsumption.storeId} - - and og.status = #{oilGun.status} - - - and og.store_id = #{oilGun.storeId} - - - and og.update_by = #{oilGun.updateBy} + + and name like concat('%', #{activeConsumption.name}, '%') + order by create_time desc \ No newline at end of file diff --git a/fuintBackend/fuint-application/src/main/java/com/fuint/business/marketingActivity/activeConsumption/service/ActiveConsumptionChildService.java b/fuintBackend/fuint-application/src/main/java/com/fuint/business/marketingActivity/activeConsumption/service/ActiveConsumptionChildService.java index d2e37755f..1702d4ed0 100644 --- a/fuintBackend/fuint-application/src/main/java/com/fuint/business/marketingActivity/activeConsumption/service/ActiveConsumptionChildService.java +++ b/fuintBackend/fuint-application/src/main/java/com/fuint/business/marketingActivity/activeConsumption/service/ActiveConsumptionChildService.java @@ -3,6 +3,9 @@ package com.fuint.business.marketingActivity.activeConsumption.service; import com.baomidou.mybatisplus.extension.service.IService; import com.fuint.business.marketingActivity.activeConsumption.entity.ActiveConsumptionChild; +import java.io.Serializable; +import java.util.List; + /** * 消费有礼活动子表(存放兑换物品)(ActiveConsumptionChild)表服务接口 * @@ -11,4 +14,6 @@ import com.fuint.business.marketingActivity.activeConsumption.entity.ActiveConsu */ public interface ActiveConsumptionChildService extends IService { + + List selectList(Serializable id); } diff --git a/fuintBackend/fuint-application/src/main/java/com/fuint/business/marketingActivity/activeConsumption/service/ActiveConsumptionService.java b/fuintBackend/fuint-application/src/main/java/com/fuint/business/marketingActivity/activeConsumption/service/ActiveConsumptionService.java index 40e47344a..341c5d878 100644 --- a/fuintBackend/fuint-application/src/main/java/com/fuint/business/marketingActivity/activeConsumption/service/ActiveConsumptionService.java +++ b/fuintBackend/fuint-application/src/main/java/com/fuint/business/marketingActivity/activeConsumption/service/ActiveConsumptionService.java @@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; import com.fuint.business.marketingActivity.activeConsumption.dto.ActiveConsumptionDTO; import com.fuint.business.marketingActivity.activeConsumption.entity.ActiveConsumption; +import com.fuint.business.marketingActivity.activeConsumption.entity.ActiveConsumptionChild; import com.fuint.business.marketingActivity.activeConsumption.vo.ActiveConsumptionAppletVO; import com.fuint.business.marketingActivity.activeConsumption.vo.ActiveConsumptionVO; diff --git a/fuintBackend/fuint-application/src/main/java/com/fuint/business/marketingActivity/activeConsumption/service/impl/ActiveConsumptionChildServiceImpl.java b/fuintBackend/fuint-application/src/main/java/com/fuint/business/marketingActivity/activeConsumption/service/impl/ActiveConsumptionChildServiceImpl.java index 532f0f4de..8ae507408 100644 --- a/fuintBackend/fuint-application/src/main/java/com/fuint/business/marketingActivity/activeConsumption/service/impl/ActiveConsumptionChildServiceImpl.java +++ b/fuintBackend/fuint-application/src/main/java/com/fuint/business/marketingActivity/activeConsumption/service/impl/ActiveConsumptionChildServiceImpl.java @@ -6,6 +6,10 @@ import com.fuint.business.marketingActivity.activeConsumption.mapper.ActiveConsu import com.fuint.business.marketingActivity.activeConsumption.service.ActiveConsumptionChildService; import org.springframework.stereotype.Service; +import javax.annotation.Resource; +import java.io.Serializable; +import java.util.List; + /** * 消费有礼活动子表(存放兑换物品)(ActiveConsumptionChild)表服务实现类 * @@ -15,4 +19,10 @@ import org.springframework.stereotype.Service; @Service("activeConsumptionChildService") public class ActiveConsumptionChildServiceImpl extends ServiceImpl implements ActiveConsumptionChildService { + @Resource + private ActiveConsumptionChildMapper activeConsumptionChildMapper; + @Override + public List selectList(Serializable id) { + return activeConsumptionChildMapper.selectConsumptionChilds(id); + } } diff --git a/fuintBackend/fuint-application/src/main/java/com/fuint/business/marketingActivity/activeConsumption/service/impl/ActiveConsumptionServiceImpl.java b/fuintBackend/fuint-application/src/main/java/com/fuint/business/marketingActivity/activeConsumption/service/impl/ActiveConsumptionServiceImpl.java index b50ca521e..5fc6b4984 100644 --- a/fuintBackend/fuint-application/src/main/java/com/fuint/business/marketingActivity/activeConsumption/service/impl/ActiveConsumptionServiceImpl.java +++ b/fuintBackend/fuint-application/src/main/java/com/fuint/business/marketingActivity/activeConsumption/service/impl/ActiveConsumptionServiceImpl.java @@ -13,6 +13,7 @@ import com.fuint.business.marketingActivity.activeConsumption.service.ActiveCons import com.fuint.business.marketingActivity.activeConsumption.service.ActiveConsumptionService; import com.fuint.business.marketingActivity.activeConsumption.vo.ActiveConsumptionAppletVO; import com.fuint.business.marketingActivity.activeConsumption.vo.ActiveConsumptionVO; +import com.fuint.business.marketingActivity.activeConsumption.vo.ActiveConsumptionVOS; import com.fuint.business.petrolStationManagement.service.OilNameService; import com.fuint.business.store.service.StoreService; import com.fuint.business.userManager.entity.LJUserGrade; @@ -49,6 +50,8 @@ public class ActiveConsumptionServiceImpl extends ServiceImpl queryWrapper = new LambdaQueryWrapper<>(); - if(ObjectUtils.isNotEmpty(activeConsumption.getName())){ - queryWrapper.like(ActiveConsumption::getName,activeConsumption.getName()); - } - if(ObjectUtils.isNotEmpty(activeConsumption.getStatus())) { - queryWrapper.eq(ActiveConsumption::getStatus,activeConsumption.getStatus()); - } - if(ObjectUtils.isNotEmpty(activeConsumption.getIsonline())) { - queryWrapper.eq(ActiveConsumption::getIsonline,activeConsumption.getIsonline()); - } - queryWrapper.eq(ActiveConsumption::getStoreId,TokenUtil.getNowAccountInfo().getStoreId()); - queryWrapper.orderByDesc(ActiveConsumption::getCreateTime); - IPage page1 = page(page, queryWrapper); - //会员等级 - List records = page1.getRecords(); + public IPage select(Page page, ActiveConsumption activeConsumption) { + //所属店铺id + activeConsumption.setStoreId(TokenUtil.getNowAccountInfo().getStoreId()); + //查询活动及其兑换券 + IPage activeConsumptionVOSIPage = activeConsumptionMapper.selectConsumptions(page, activeConsumption); + List records = activeConsumptionVOSIPage.getRecords(); List activeConsumptionVOList = records.stream().map(s ->{ ActiveConsumptionVO activeConsumptionVO = new ActiveConsumptionVO(); - //获取兑换物品信息 - LambdaQueryWrapper queryWrappers = new LambdaQueryWrapper<>(); - queryWrappers.eq(ActiveConsumptionChild::getActiveConsumptionId,s.getId()); - queryWrappers.orderByDesc(ActiveConsumptionChild::getCreateTime); - List activeConsumptionChildList = activeConsumptionChildService.list(queryWrappers); - BeanUtils.copyProperties(s,activeConsumptionVO); activeConsumptionVO.setAdaptOil(Arrays.stream(s.getAdaptOil().split(",")) .map(Integer::valueOf) @@ -139,11 +125,10 @@ public class ActiveConsumptionServiceImpl extends ServiceImpl activeConsumptionChildList; + //创建者 + private String createBy; + //创建时间 + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date createTime; + //更新者 + private String updateBy; + //更新时间 + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date updateTime; +} diff --git a/fuintBackend/fuint-application/src/main/java/com/fuint/business/marketingActivity/activeExchange/service/impl/ActiveExchangeServiceImpl.java b/fuintBackend/fuint-application/src/main/java/com/fuint/business/marketingActivity/activeExchange/service/impl/ActiveExchangeServiceImpl.java index da84218b0..f7785a2ca 100644 --- a/fuintBackend/fuint-application/src/main/java/com/fuint/business/marketingActivity/activeExchange/service/impl/ActiveExchangeServiceImpl.java +++ b/fuintBackend/fuint-application/src/main/java/com/fuint/business/marketingActivity/activeExchange/service/impl/ActiveExchangeServiceImpl.java @@ -31,6 +31,9 @@ import com.fuint.business.marketingActivity.cardFavorable.entity.CardFavorable; import com.fuint.business.marketingActivity.cardFavorable.entity.CardFavorableRecord; import com.fuint.business.marketingActivity.cardFavorable.service.CardFavorableRecordService; import com.fuint.business.marketingActivity.cardFavorable.service.CardFavorableService; +import com.fuint.business.marketingActivity.cardValue.entity.CardValue; +import com.fuint.business.marketingActivity.cardValue.service.CardValueService; +import com.fuint.business.marketingActivity.cardValue.vo.CardValueAppletVO; import com.fuint.business.userManager.service.LJUserGradeService; import org.apache.commons.lang3.ObjectUtils; import org.springframework.beans.BeanUtils; @@ -67,6 +70,8 @@ public class ActiveExchangeServiceImpl implements ActiveExchangeService { private ActiveNewlywedsService activeNewlywedsService; @Resource private ActiveRecommendService activeRecommendService; + @Resource + private CardValueService cardValueService; /** * 分页查询所有 * @param @@ -339,6 +344,20 @@ public class ActiveExchangeServiceImpl implements ActiveExchangeService { activeAppletVO.setDes("活动准备中,敬请期待!"); activeAppletVOS.add(activeAppletVO); } + //充值有礼 + List cardValueAppletVOS = cardValueService.selectAllApplet(new CardValue()); + if (CollectionUtils.isNotEmpty(cardValueAppletVOS)){ + ActiveAppletVO activeAppletVO = new ActiveAppletVO(); + activeAppletVO.setName("储值卡充值活动"); + activeAppletVO.setDes(cardValueAppletVOS.get(0).getDiscountActiveDescribe()); + activeAppletVO.setTime(cardValueAppletVOS.get(0).getTime()); + activeAppletVOS.add(activeAppletVO); + }else { + ActiveAppletVO activeAppletVO = new ActiveAppletVO(); + activeAppletVO.setName("储值卡充值活动"); + activeAppletVO.setDes("活动准备中,敬请期待!"); + activeAppletVOS.add(activeAppletVO); + } return activeAppletVOS; } } diff --git a/fuintBackend/fuint-application/src/main/java/com/fuint/business/marketingActivity/cardValue/controller/CardValueController.java b/fuintBackend/fuint-application/src/main/java/com/fuint/business/marketingActivity/cardValue/controller/CardValueController.java index 2a1462899..9791d9b72 100644 --- a/fuintBackend/fuint-application/src/main/java/com/fuint/business/marketingActivity/cardValue/controller/CardValueController.java +++ b/fuintBackend/fuint-application/src/main/java/com/fuint/business/marketingActivity/cardValue/controller/CardValueController.java @@ -2,6 +2,7 @@ package com.fuint.business.marketingActivity.cardValue.controller; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.fuint.business.marketingActivity.activeConsumption.entity.ActiveConsumption; import com.fuint.business.marketingActivity.cardValue.dto.CardValueDTO; import com.fuint.business.marketingActivity.cardValue.entity.CardValue; import com.fuint.business.marketingActivity.cardValue.service.CardValueService; @@ -44,6 +45,16 @@ public class CardValueController extends BaseController { return getSuccessResult(this.cardValueService.select(page, cardValue)); } + /** + * 查询所有数据(小程序端) + * @param cardValue + * @return + */ + @GetMapping("appletList") + public ResponseObject selectAllApplet(@Param("cardValue") CardValue cardValue) { + return getSuccessResult(this.cardValueService.selectAllApplet(cardValue)); + } + /** * 通过主键查询单条数据 * diff --git a/fuintBackend/fuint-application/src/main/java/com/fuint/business/marketingActivity/cardValue/service/CardValueService.java b/fuintBackend/fuint-application/src/main/java/com/fuint/business/marketingActivity/cardValue/service/CardValueService.java index 0a72d882d..b564419eb 100644 --- a/fuintBackend/fuint-application/src/main/java/com/fuint/business/marketingActivity/cardValue/service/CardValueService.java +++ b/fuintBackend/fuint-application/src/main/java/com/fuint/business/marketingActivity/cardValue/service/CardValueService.java @@ -5,9 +5,11 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; import com.fuint.business.marketingActivity.cardValue.dto.CardValueDTO; import com.fuint.business.marketingActivity.cardValue.entity.CardValue; +import com.fuint.business.marketingActivity.cardValue.vo.CardValueAppletVO; import com.fuint.business.marketingActivity.cardValue.vo.CardValueVO; import java.io.Serializable; +import java.util.List; /** * 储值卡表(CardValue)表服务接口 @@ -45,5 +47,13 @@ public interface CardValueService extends IService { * @return */ boolean updateOneById(CardValueDTO cardValueDTO); + + + /** + * 查询所有数据(小程序端) + * @param cardValue + * @return + */ + List selectAllApplet(CardValue cardValue); } diff --git a/fuintBackend/fuint-application/src/main/java/com/fuint/business/marketingActivity/cardValue/service/impl/CardValueServiceImpl.java b/fuintBackend/fuint-application/src/main/java/com/fuint/business/marketingActivity/cardValue/service/impl/CardValueServiceImpl.java index 974d9202f..bc20b1567 100644 --- a/fuintBackend/fuint-application/src/main/java/com/fuint/business/marketingActivity/cardValue/service/impl/CardValueServiceImpl.java +++ b/fuintBackend/fuint-application/src/main/java/com/fuint/business/marketingActivity/cardValue/service/impl/CardValueServiceImpl.java @@ -5,22 +5,33 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.fuint.business.marketingActivity.activeConsumption.entity.ActiveConsumptionChild; +import com.fuint.business.marketingActivity.activeConsumption.vo.ActiveConsumptionAppletVO; +import com.fuint.business.marketingActivity.activeConsumption.vo.ActiveConsumptionVO; +import com.fuint.business.marketingActivity.activeDiscount.entity.ActiveDiscount; +import com.fuint.business.marketingActivity.activeDiscount.entity.ActiveDiscountChild; +import com.fuint.business.marketingActivity.activeDiscount.vo.ActiveDiscountVO; import com.fuint.business.marketingActivity.cardValue.dto.CardValueDTO; import com.fuint.business.marketingActivity.cardValue.entity.CardValueChild; import com.fuint.business.marketingActivity.cardValue.mapper.CardValueMapper; import com.fuint.business.marketingActivity.cardValue.entity.CardValue; import com.fuint.business.marketingActivity.cardValue.service.CardValueChildService; import com.fuint.business.marketingActivity.cardValue.service.CardValueService; +import com.fuint.business.marketingActivity.cardValue.vo.CardValueAppletVO; import com.fuint.business.marketingActivity.cardValue.vo.CardValueVO; import com.fuint.business.store.service.StoreService; +import com.fuint.business.userManager.service.LJUserGradeService; import com.fuint.common.util.TokenUtil; import org.apache.commons.lang3.ObjectUtils; import org.springframework.beans.BeanUtils; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.io.Serializable; +import java.text.SimpleDateFormat; import java.util.ArrayList; +import java.util.Arrays; import java.util.Date; import java.util.List; import java.util.stream.Collectors; @@ -38,6 +49,8 @@ public class CardValueServiceImpl extends ServiceImpl queryWrapper = new LambdaQueryWrapper<>(); + //构建查询条件 + if (ObjectUtils.isNotEmpty(cardValue.getIsonline())){ + queryWrapper.eq(CardValue::getIsonline,cardValue.getIsonline()); + } + if (ObjectUtils.isNotEmpty(cardValue.getActiveStatus())){ + queryWrapper.eq(CardValue::getActiveStatus,cardValue.getActiveStatus()); + } + queryWrapper.eq(CardValue::getStoreId, TokenUtil.getNowAccountInfo().getStoreId()); + queryWrapper.orderByDesc(CardValue::getCreateTime); + IPage page1 = page(page, queryWrapper); + List records = page1.getRecords(); + //会员等级 + List cardValueVOS = records.stream().map(s ->{ + CardValueVO cardValueVO = new CardValueVO(); + //获取兑换物品信息 + LambdaQueryWrapper queryWrappers = new LambdaQueryWrapper<>(); + queryWrappers.eq(CardValueChild::getCardValueId,s.getId()); + queryWrappers.orderByDesc(CardValueChild::getCreateTime); + List cardValueChildList = cardValueChildService.list(queryWrappers); + + BeanUtils.copyProperties(s,cardValueVO); + //获取会员等级 + String str = ""; + if (ObjectUtils.isNotEmpty(s.getMembershipLevel())){ + for (String gradeId : s.getMembershipLevel().split(",")) { + if (ObjectUtils.isNotEmpty(userGradeService.selectUserGradeById(Integer.parseInt(gradeId)))){ + str += userGradeService.selectUserGradeById(Integer.parseInt(gradeId)).getName() + ","; + } + } + cardValueVO.setMembershipLevel(str.split(",")); + } + cardValueVO.setCardValueChildList(cardValueChildList); + return cardValueVO; + }).collect(Collectors.toList()); + page1.setRecords(cardValueVOS); + return page1; + } + /** * 通过主键查询单条数据(充值) * @param id @@ -167,6 +220,49 @@ public class CardValueServiceImpl extends ServiceImpl selectAllApplet(CardValue cardValue) { + //获取本油站消费有礼活动列表 + IPage page = selectAll(new Page(1, 20), cardValue); + List cardValueAppletVOList = page.getRecords(); + List appletVOList = cardValueAppletVOList.stream().map(s -> { + CardValueAppletVO cardValueAppletVO = new CardValueAppletVO(); + //活动时间 + if (s.getActiveTime().equals("1")){ + cardValueAppletVO.setTime("不限时间"); + }else { + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy.MM.dd"); + String formatSt = dateFormat.format(s.getStartTime()); + String formatEd = dateFormat.format(s.getEndTime()); + cardValueAppletVO.setTime(formatSt+"-" + formatEd+""); + } + //适用用户名 + String adaptUserType = ""; + if (s.getGroupOriented().equals("1")){ + adaptUserType = "普通群体"; + }else { + adaptUserType = arrayToString(s.getMembershipLevel()); + //adaptUserType = s.getMembershipLevel(); + } + //赠送优惠券兑换券实物 + String card = ""; + if (CollectionUtils.isNotEmpty(s.getCardValueChildList())) { + for (CardValueChild cardValueChild : s.getCardValueChildList()) { + card = cardValueChild.getGiftCardDetail() + "的券"; + } + } + cardValueAppletVO.setDiscountActiveDescribe("本充值活动"+adaptUserType+"可用,充值满"+ + s.getBidBalance()+"元,赠送金额为:"+s.getGiftBalance()+"元,赠送券:"+card+" 赠送积分:"+s.getPoints()+"积分,赠送成长值为:"+s.getGrowthValue()+"。"); + return cardValueAppletVO; + }).collect(Collectors.toList()); + return appletVOList; + } + /** * 数组转字符串 * @param array diff --git a/fuintBackend/fuint-application/src/main/java/com/fuint/business/marketingActivity/cardValue/vo/CardValueAppletVO.java b/fuintBackend/fuint-application/src/main/java/com/fuint/business/marketingActivity/cardValue/vo/CardValueAppletVO.java new file mode 100644 index 000000000..394ffa7a9 --- /dev/null +++ b/fuintBackend/fuint-application/src/main/java/com/fuint/business/marketingActivity/cardValue/vo/CardValueAppletVO.java @@ -0,0 +1,13 @@ +package com.fuint.business.marketingActivity.cardValue.vo; + +import lombok.Data; + +import java.io.Serializable; + +@Data +public class CardValueAppletVO implements Serializable { + //活动描述 + private String discountActiveDescribe; + //活动时间 + private String time; +} diff --git a/fuintBackend/fuint-application/src/main/java/com/fuint/business/order/controller/OilOrderController.java b/fuintBackend/fuint-application/src/main/java/com/fuint/business/order/controller/OilOrderController.java index 37a147b08..247b0385c 100644 --- a/fuintBackend/fuint-application/src/main/java/com/fuint/business/order/controller/OilOrderController.java +++ b/fuintBackend/fuint-application/src/main/java/com/fuint/business/order/controller/OilOrderController.java @@ -74,6 +74,17 @@ public class OilOrderController extends BaseController { return getSuccessResult(order); } + /** + * 小程序支付接口 + * @param map + * @return + */ + @PostMapping("/appletPay") + public ResponseObject appletPay(@Validated @RequestBody Map map){ + orderService.appletPay(map); + return getSuccessResult("success"); + } + /** * 根据订单号查询订单信息 * @param map 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 fda551f4e..4e02d0665 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 @@ -1,6 +1,7 @@ package com.fuint.business.order.entity; import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.fuint.framework.entity.BaseEntity; @@ -117,6 +118,10 @@ public class OilOrder extends BaseEntity implements Serializable { * 订单备注 */ private String remark; - + /** + * 油罐id + */ + @TableField(exist = false) + private Integer tankId; } diff --git a/fuintBackend/fuint-application/src/main/java/com/fuint/business/order/service/OilOrderService.java b/fuintBackend/fuint-application/src/main/java/com/fuint/business/order/service/OilOrderService.java index 29909d116..b9c19bf5b 100644 --- a/fuintBackend/fuint-application/src/main/java/com/fuint/business/order/service/OilOrderService.java +++ b/fuintBackend/fuint-application/src/main/java/com/fuint/business/order/service/OilOrderService.java @@ -72,6 +72,12 @@ public interface OilOrderService extends IService { */ public String addOilOrder(OilOrder oilOrder); + /** + * 小程序订单支付 + * @param map + */ + public void appletPay(Map map); + /** * 添加油品跟踪信息 * @param oilOrder @@ -79,6 +85,13 @@ public interface OilOrderService extends IService { */ public void addOilTrack(JSONObject oilOrder, Integer storeId); + /** + * 添加油品跟踪信息 + * @param oilOrder + * @param storeId + */ + public void addOilTracks(OilOrder oilOrder,Integer storeId); + /** * 添加油品订单信息 * @param order 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 b470312ce..1d1782265 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 @@ -18,11 +18,15 @@ import com.fuint.business.order.mapper.OilOrderMapper; import com.fuint.business.order.service.*; import com.fuint.business.order.vo.OilOrderVo; import com.fuint.business.petrolStationManagement.entity.OilName; +import com.fuint.business.petrolStationManagement.entity.OilNumber; import com.fuint.business.petrolStationManagement.entity.OilTank; import com.fuint.business.petrolStationManagement.entity.OilTracking; import com.fuint.business.petrolStationManagement.service.OilNameService; +import com.fuint.business.petrolStationManagement.service.OilNumberService; import com.fuint.business.petrolStationManagement.service.OilTankService; import com.fuint.business.petrolStationManagement.service.OilTrackingService; +import com.fuint.business.storeInformation.entity.LJStore; +import com.fuint.business.storeInformation.service.ILJStoreService; import com.fuint.business.userManager.entity.LJUser; import com.fuint.business.userManager.entity.LJUserGrade; import com.fuint.business.userManager.entity.UserBalance; @@ -146,7 +150,7 @@ public class OilOrderServiceImpl extends ServiceImpl i // 会员id userId = Integer.valueOf(map.get("userId")); - this.insertCardBalance(consumeAmount,userId); + this.insertCardBalance(consumeAmount,userId,storeId); } // 优惠券id Integer couponId = null; @@ -271,7 +275,7 @@ public class OilOrderServiceImpl extends ServiceImpl i } if (userId!=null){ - this.updateGrowthValue(oilActualPay, userId, Integer.valueOf(jsonObjects.get(i).get("oilName").toString()),refuelMoney); + this.updateGrowthValue(oilActualPay, userId, Integer.valueOf(jsonObjects.get(i).get("oilName").toString()),refuelMoney,storeId); } order.setStoreId(storeId); order.setUserId(userId); @@ -378,6 +382,64 @@ public class OilOrderServiceImpl extends ServiceImpl i return orderNo; } + @Override + public void appletPay(Map map) { + String orderNo = map.get("orderNo"); +// 支付金额 + Integer payAmount = (int) (Double.valueOf(map.get("payAmount"))*100); +// 优惠金额 + String discountAmount = map.get("discountAmount"); +// 囤油卡消费后的信息 + String oilCardAmount = map.get("oilCardAmount"); +// 储值卡消费金额 + String balanceAmount = map.get("balanceAmount"); + Integer tankId = Integer.valueOf(map.get("tankId")); + +// 根据订单号查询订单信息 + OilOrder oilOrder = this.selectOilOrderByOrderNo(orderNo); + oilOrder.setTankId(tankId); + if (!map.get("payAmount").equals("0")) { +// 调用支付接口 +// 判断是否开启支付规则 + List list = merchantConfigService.selectMeChByIsOpen(); + if (list.size() > 0) { + oilConfigService.oilRule(); + } + // 根据店铺id查询商户配置信息 + MerchantConfig merchantConfig = merchantConfigService.selectMeChByIsUse("1"); + LJUserVo userVo = userService.selectUserById(oilOrder.getUserId()); + // 处理支付需要的数据 + Map map1 = new HashMap<>(); + map1.put("allAmount", payAmount.toString()); + map1.put("orderNo", oilOrder.getOrderNo()); + map1.put("insCd", merchantConfig.getInsCd()); + map1.put("mchntCd", merchantConfig.getMchntCd()); + map1.put("goodsDes", oilOrder.getOils() + oilOrder.getOilGunNum()); + map1.put("publicKey", merchantConfig.getPublicKey()); + map1.put("privateKey", merchantConfig.getPrivateKey()); + map1.put("discountAmount", discountAmount); + map1.put("oilCardAmount", oilCardAmount); + map1.put("balanceAmount", balanceAmount); + map1.put("openId", userVo.getOpenId()); + + // 调用支付接口 + try { + fyPayService.applet(map1); + } catch (Exception e) { + e.printStackTrace(); + } + }else { + this.updateGrowthValue(Double.valueOf(payAmount),oilOrder.getUserId(), Integer.valueOf(oilOrder.getOils()),oilCardAmount,oilOrder.getStoreId()); + this.addOilTracks(oilOrder,oilOrder.getStoreId()); + this.insertCardBalance(Double.valueOf(balanceAmount),oilOrder.getUserId(),oilOrder.getStoreId()); + oilOrder.setPayAmount(Double.valueOf(payAmount)); + oilOrder.setDiscountAmount(Double.valueOf(discountAmount)); + oilOrder.setPayTime(new Date()); + oilOrder.setOrderStatus("paid"); + baseMapper.updateById(oilOrder); + } + } + @Autowired private OilTankService oilTankService; @Autowired @@ -411,6 +473,32 @@ public class OilOrderServiceImpl extends ServiceImpl i oilTankService.update(oilTank); } + /** + * 添加油品库存跟踪信息 + * @param oilOrder + */ + @Override + public void addOilTracks(OilOrder oilOrder,Integer storeId){ + OilTank oilTank = oilTankService.queryById(oilOrder.getTankId()); +// 添加库存跟踪信息 + OilTracking oilTracking = new OilTracking(); + oilTracking.setDocument("油品出售"); + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmmss"); + String timestamp = dateFormat.format(new Date()); + String randomString = UUID.randomUUID().toString().replace("-","").substring(0,6); + oilTracking.setOrderNumber(timestamp+randomString); + + oilTracking.setQuantityChange(-oilOrder.getOilNum()); + oilTracking.setStoreId(storeId); + oilTracking.setTankId(oilOrder.getTankId()); + oilTrackingService.insert(oilTracking); + +// 修改油罐容量 + Double storedQuantity = oilTank.getStoredQuantity(); + oilTank.setStoredQuantity(storedQuantity-oilOrder.getOilNum()); + oilTankService.update(oilTank); + } + @Override public int updateOilOrder(OilOrder order) { int row = baseMapper.updateById(order); @@ -423,19 +511,21 @@ public class OilOrderServiceImpl extends ServiceImpl i private LJUserService userService; @Autowired private LJUserGradeService userGradeService; + @Autowired + private ILJStoreService storeService; /** * 修改用户成长值信息 */ - private void updateGrowthValue(Double oilActualPay,Integer userid,Integer oilId,String refuelMoney){ + private void updateGrowthValue(Double oilActualPay,Integer userid,Integer oilId,String refuelMoney,Integer storeId){ if (oilId!=null){ OilName oilName = oilNameService.selectOilNameById(oilId); // 获取成长值增长数值 Integer gasGrowthValue = null; Integer dieselGrowthValue = null; Integer naturalGrowthValue = null; - AccountInfo nowAccountInfo = TokenUtil.getNowAccountInfo(); - UserBalance balance = userBalanceService.selectUserBalance(userid,nowAccountInfo.getStoreId()); + LJStore store = storeService.selectStoreByStoreId(storeId); + UserBalance balance = userBalanceService.selectUserBalance(userid,store.getChainStoreId()); int growth = balance.getGrowthValue(); balance.setRefuelMoney(refuelMoney); // 查询会员等级列表信息 @@ -492,10 +582,11 @@ public class OilOrderServiceImpl extends ServiceImpl i } } - private void insertCardBalance(Double amount,Integer userId){ + private void insertCardBalance(Double amount,Integer userId,Integer storeId){ AccountInfo nowAccountInfo = TokenUtil.getNowAccountInfo(); // 根据用户id查询用户余额信息 - UserBalance balance = userBalanceService.selectUserBalance(userId,nowAccountInfo.getStoreId()); + LJStore store = storeService.selectStoreByStoreId(storeId); + UserBalance balance = userBalanceService.selectUserBalance(userId,store.getChainStoreId()); // 修改余额信息 Double beforeBalance = balance.getCardBalance(); Double afterBalance = beforeBalance - amount; diff --git a/fuintBackend/fuint-application/src/main/java/com/fuint/business/petrolStationManagement/mapper/xml/OilNumberMapper.xml b/fuintBackend/fuint-application/src/main/java/com/fuint/business/petrolStationManagement/mapper/xml/OilNumberMapper.xml index 1ea66db0c..e4095aef1 100644 --- a/fuintBackend/fuint-application/src/main/java/com/fuint/business/petrolStationManagement/mapper/xml/OilNumberMapper.xml +++ b/fuintBackend/fuint-application/src/main/java/com/fuint/business/petrolStationManagement/mapper/xml/OilNumberMapper.xml @@ -132,7 +132,9 @@