From 4f56122860dddd3c9effdaea1c3bb147201d8125 Mon Sep 17 00:00:00 2001 From: lzx_mac <2602107437@qq.com> Date: Wed, 27 Nov 2024 00:09:27 +0800 Subject: [PATCH] =?UTF-8?q?=E7=89=88=E6=9C=AC=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/org/jeecg/modules/pay/MpWxPayService.java | 103 +--------- .../java/org/jeecg/modules/pay/config/WxPay.java | 8 + .../src/main/resources/pay_weixin.properties | 22 +-- .../cityClick/controller/CityClickController.java | 171 +++++++++++++++++ .../jeecg/modules/cityClick/entity/CityClick.java | 66 +++++++ .../modules/cityClick/mapper/CityClickMapper.java | 17 ++ .../cityClick/mapper/xml/CityClickMapper.xml | 5 + .../cityClick/service/ICityClickService.java | 14 ++ .../service/impl/CityClickServiceImpl.java | 19 ++ .../jeecg/modules/cityClick/vue/CityClickList.vue | 189 +++++++++++++++++++ .../cityClick/vue/modules/CityClickForm.vue | 119 ++++++++++++ .../vue/modules/CityClickModal.Style#Drawer.vue | 84 +++++++++ .../cityClick/vue/modules/CityClickModal.vue | 60 ++++++ .../jeecg/modules/cityClick/vue3/CityClick.api.ts | 61 ++++++ .../jeecg/modules/cityClick/vue3/CityClick.data.ts | 53 ++++++ .../jeecg/modules/cityClick/vue3/CityClickList.vue | 162 ++++++++++++++++ .../cityClick/vue3/components/CityClickModal.vue | 58 ++++++ .../cityConf/controller/CityConfController.java | 2 +- .../jeecg/modules/cityConf/entity/CityConf.java | 6 +- .../modules/cityConf/mapper/CityConfMapper.java | 2 +- .../modules/cityConf/service/ICityConfService.java | 2 +- .../cityConf/service/impl/CityConfServiceImpl.java | 2 +- .../jeecg/modules/cityConf/vue/CityConfList.vue | 6 + .../modules/cityConf/vue/modules/CityConfForm.vue | 5 + .../jeecg/modules/cityConf/vue3/CityConf.data.ts | 10 + .../cityShop/controller/CityShopController.java | 2 +- .../jeecg/modules/cityShop/entity/CityShop.java | 18 +- .../modules/cityShop/mapper/CityShopMapper.java | 2 +- .../modules/cityShop/service/ICityShopService.java | 2 +- .../cityShop/service/impl/CityShopServiceImpl.java | 2 +- .../jeecg/modules/cityShop/vue/CityShopList.vue | 25 +++ .../modules/cityShop/vue/modules/CityShopForm.vue | 20 ++ .../jeecg/modules/cityShop/vue3/CityShop.data.ts | 43 +++++ .../controller/CityShoppingController.java | 2 +- .../modules/cityShopping/entity/CityShopping.java | 6 +- .../cityShopping/mapper/CityShoppingMapper.java | 2 +- .../cityShopping/service/ICityShoppingService.java | 2 +- .../service/impl/CityShoppingServiceImpl.java | 2 +- .../modules/cityShopping/vue/CityShoppingList.vue | 8 + .../cityShopping/vue/modules/CityShoppingForm.vue | 5 + .../modules/cityShopping/vue3/CityShopping.data.ts | 15 ++ .../controller/CityVipLogController.java | 171 +++++++++++++++++ .../modules/cityVipLog/entity/CityVipLog.java | 78 ++++++++ .../cityVipLog/mapper/CityVipLogMapper.java | 17 ++ .../cityVipLog/mapper/xml/CityVipLogMapper.xml | 5 + .../cityVipLog/service/ICityVipLogService.java | 14 ++ .../service/impl/CityVipLogServiceImpl.java | 19 ++ .../modules/cityVipLog/vue/CityVipLogList.vue | 207 +++++++++++++++++++++ .../cityVipLog/vue/modules/CityVipLogForm.vue | 134 +++++++++++++ .../vue/modules/CityVipLogModal.Style#Drawer.vue | 84 +++++++++ .../cityVipLog/vue/modules/CityVipLogModal.vue | 60 ++++++ .../modules/cityVipLog/vue3/CityVipLog.api.ts | 61 ++++++ .../modules/cityVipLog/vue3/CityVipLog.data.ts | 83 +++++++++ .../modules/cityVipLog/vue3/CityVipLogList.vue | 162 ++++++++++++++++ .../cityVipLog/vue3/components/CityVipLogModal.vue | 58 ++++++ .../java/org/jeecg/modules/api/bean/PageBean.java | 1 + .../org/jeecg/modules/api/bean/YaoDuOrderBean.java | 3 + .../jeecg/modules/api/service/YaoDuApiService.java | 6 +- .../modules/api/service/YaoDuOrderService.java | 8 +- .../api/service/impl/YaoDuApiServiceImpl.java | 74 +++++++- .../api/service/impl/YaoDuOrderServiceImpl.java | 136 +++++++++++++- .../api/yaoduapi/YaoDuApiTokenController.java | 14 +- .../modules/api/yaoduapi/YaoDuOrderController.java | 21 ++- .../src/main/resources/pay_weixin.properties | 6 +- 64 files changed, 2678 insertions(+), 146 deletions(-) create mode 100644 jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityClick/controller/CityClickController.java create mode 100644 jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityClick/entity/CityClick.java create mode 100644 jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityClick/mapper/CityClickMapper.java create mode 100644 jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityClick/mapper/xml/CityClickMapper.xml create mode 100644 jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityClick/service/ICityClickService.java create mode 100644 jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityClick/service/impl/CityClickServiceImpl.java create mode 100644 jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityClick/vue/CityClickList.vue create mode 100644 jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityClick/vue/modules/CityClickForm.vue create mode 100644 jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityClick/vue/modules/CityClickModal.Style#Drawer.vue create mode 100644 jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityClick/vue/modules/CityClickModal.vue create mode 100644 jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityClick/vue3/CityClick.api.ts create mode 100644 jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityClick/vue3/CityClick.data.ts create mode 100644 jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityClick/vue3/CityClickList.vue create mode 100644 jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityClick/vue3/components/CityClickModal.vue create mode 100644 jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityVipLog/controller/CityVipLogController.java create mode 100644 jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityVipLog/entity/CityVipLog.java create mode 100644 jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityVipLog/mapper/CityVipLogMapper.java create mode 100644 jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityVipLog/mapper/xml/CityVipLogMapper.xml create mode 100644 jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityVipLog/service/ICityVipLogService.java create mode 100644 jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityVipLog/service/impl/CityVipLogServiceImpl.java create mode 100644 jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityVipLog/vue/CityVipLogList.vue create mode 100644 jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityVipLog/vue/modules/CityVipLogForm.vue create mode 100644 jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityVipLog/vue/modules/CityVipLogModal.Style#Drawer.vue create mode 100644 jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityVipLog/vue/modules/CityVipLogModal.vue create mode 100644 jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityVipLog/vue3/CityVipLog.api.ts create mode 100644 jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityVipLog/vue3/CityVipLog.data.ts create mode 100644 jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityVipLog/vue3/CityVipLogList.vue create mode 100644 jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityVipLog/vue3/components/CityVipLogModal.vue diff --git a/han-hai-module-pay/src/main/java/org/jeecg/modules/pay/MpWxPayService.java b/han-hai-module-pay/src/main/java/org/jeecg/modules/pay/MpWxPayService.java index 8986708..420e44d 100644 --- a/han-hai-module-pay/src/main/java/org/jeecg/modules/pay/MpWxPayService.java +++ b/han-hai-module-pay/src/main/java/org/jeecg/modules/pay/MpWxPayService.java @@ -58,13 +58,11 @@ public class MpWxPayService { request.setDetail(productName); //商品详情 request.setTotalFee(price); //总金额|分计 request.setSpbillCreateIp(clientIp); //终端IP - request.setNotifyUrl("http://h5.xzaiyp.top/massage-api/post/notify");//设置回调路径 + request.setNotifyUrl(wxPay.notifyUrl); request.setProductId(productId); //商品id if (dev) { request.setTotalFee(price); -// request.setNotifyUrl(wxPay.notifyUrlDev); - request.setNotifyUrl("http://h5.xzaiyp.top/massage-api/post/notify"); - + request.setNotifyUrl(wxPay.notifyUrlDev); } try { Object order = wxPayService.unifiedOrder(request); @@ -98,14 +96,12 @@ public class MpWxPayService { request.setDetail(productName); //商品详情 request.setTotalFee(price); //总金额|分计 request.setSpbillCreateIp(clientIp); //终端IP -// request.setNotifyUrl(wxPay.notifyUrl);//设置回调路径 - request.setNotifyUrl("https://tai-testapi.sanhemovie.com/massage-api/post/notify");//设置回调路径 + request.setNotifyUrl(wxPay.notifyUrl);//设置回调路径 request.setProductId(productId); //商品id request.setOpenid(openId); //JSAPI OPENID if (dev){ request.setTotalFee(price); -// request.setNotifyUrl(wxPay.notifyUrlDev); - request.setNotifyUrl("https://tai-testapi.sanhemovie.com/massage-api/post/notify");//设置回调路径 + request.setNotifyUrl(wxPay.notifyUrlDev); } try { Object order = wxPayService.createOrder(request); @@ -130,7 +126,7 @@ public class MpWxPayService { * @param body * @return */ - public Object createOrderGo(String productName, String clientIp, + public Object createOrderVip(String productName, String clientIp, String productId, Integer price, String orderNo, String openId, String body){ WxPayUnifiedOrderRequest request = new WxPayUnifiedOrderRequest(); @@ -141,12 +137,12 @@ public class MpWxPayService { request.setDetail(productName); //商品详情 request.setTotalFee(price); //总金额|分计 request.setSpbillCreateIp(clientIp); //终端IP - request.setNotifyUrl(wxPay.notifyUrl);//设置回调路径 + request.setNotifyUrl("https://admin.hhlm1688.com/api/order/vipOpenPayNotify");//设置回调路径 request.setProductId(productId); //商品id request.setOpenid(openId); //JSAPI OPENID if (dev){ request.setTotalFee(price); - request.setNotifyUrl(wxPay.notifyUrlDev); + request.setNotifyUrl("https://admin.hhlm1688.com/api/order/vipOpenPayNotify"); } try { Object order = wxPayService.createOrder(request); @@ -159,47 +155,6 @@ public class MpWxPayService { - /** - * 微信吊起支付 -- 付费小程序 - * @param productName - * @param clientIp - * @param productId - * @param price - * @param orderNo - * @param openId - * @param body - * @return - */ - public Object createOrderPay(String productName, String clientIp, - String productId, Integer price, String orderNo, - String openId, String body){ - WxPayUnifiedOrderRequest request = new WxPayUnifiedOrderRequest(); - request.setDeviceInfo("WEB"); //设备号 - request.setTradeType("JSAPI"); //交易类型 - request.setBody(productName); //商品描述 - request.setOutTradeNo(orderNo); //商户订单号 - request.setDetail(productName); //商品详情 - request.setTotalFee(price); //总金额|分计 - request.setSpbillCreateIp(clientIp); //终端IP -// request.setNotifyUrl(wxPay.notifyUrl);//设置回调路径 - request.setNotifyUrl("http://h5.xzaiyp.top/a-notice-api/pay-api/info/notify");//设置回调路径 - request.setProductId(productId); //商品id - request.setOpenid(openId); //JSAPI OPENID - if (dev){ - request.setTotalFee(price); -// request.setNotifyUrl(wxPay.notifyUrlDev); - request.setNotifyUrl("http://h5.xzaiyp.top/a-notice-api/pay-api/info/notify");//设置回调路径 - } - try { - Object order = wxPayService.createOrder(request); - return order; - } catch (WxPayException e) { - e.printStackTrace(); - return e.getLocalizedMessage(); - } - } - - @@ -209,50 +164,6 @@ public class MpWxPayService { - /** - * 微信吊起支付 - * @param productName - * @param clientIp - * @param productId - * @param price - * @param orderNo - * @param openId - * @param body - * @return - */ - public Object createUserOrder(String productName, String clientIp, - String productId, Integer price, String orderNo, - String openId, String body){ - WxPayUnifiedOrderRequest request = new WxPayUnifiedOrderRequest(); - request.setDeviceInfo("WEB"); //设备号 - request.setTradeType("JSAPI"); //交易类型 - request.setBody(productName); //商品描述 - request.setOutTradeNo(orderNo); //商户订单号 - request.setDetail(productName); //商品详情 - request.setTotalFee(price); //总金额|分计 - request.setSpbillCreateIp(clientIp); //终端IP -// request.setNotifyUrl(wxPay.notifyUrl);//设置回调路径 - request.setNotifyUrl("https://admin.csnaicheng.com/h5-api/api/notify");//设置回调路径 - request.setProductId(productId); //商品id - request.setOpenid(openId); //JSAPI OPENID - if (dev){ - request.setTotalFee(price); -// request.setNotifyUrl(wxPay.notifyUrlDev); - request.setNotifyUrl("https://admin.csnaicheng.com/h5-api/api/notify");//设置回调路径 - } - try { - Object order = wxPayService.createOrder(request); - return order; - } catch (WxPayException e) { - e.printStackTrace(); - return e.getLocalizedMessage(); - } - } - - - - - diff --git a/han-hai-module-pay/src/main/java/org/jeecg/modules/pay/config/WxPay.java b/han-hai-module-pay/src/main/java/org/jeecg/modules/pay/config/WxPay.java index 507b7c6..2bbc99e 100644 --- a/han-hai-module-pay/src/main/java/org/jeecg/modules/pay/config/WxPay.java +++ b/han-hai-module-pay/src/main/java/org/jeecg/modules/pay/config/WxPay.java @@ -56,7 +56,15 @@ public class WxPay { */ public String notifyOrderUrlDev; + /** + * 回调地址 + */ + public String notifyVipUrl; + /** + * 回调地址dev + */ + public String notifyVipUrlDev; diff --git a/han-hai-module-pay/src/main/resources/pay_weixin.properties b/han-hai-module-pay/src/main/resources/pay_weixin.properties index 151a9e7..97955ce 100644 --- a/han-hai-module-pay/src/main/resources/pay_weixin.properties +++ b/han-hai-module-pay/src/main/resources/pay_weixin.properties @@ -1,14 +1,8 @@ -#pay.mchId=1636874683 -#pay.appId=wx6fb4a17b28186d58 -#pay.mchKey=GVIP1008611ABCDEFGGGGJKHLOSJFLGK -#pay.keyPath=classpath:apiclient_cert.p12 -#pay.notifyUrl=https://jobadmin.java996.icu/job-dev/job/pay/notify -#pay.notifyUrlDev=https://jobadmin.java996.icu/job-dev/job/pay/notify - -#pay.mchId=1673516176 -#pay.appId=wxa4d29e67e8a58d38 -#pay.mchKey=GVIP1008611ABCDEFGGGGJKHLOSJFLGK -#pay.keyPath= -#pay.notifyUrl=https://admin.hhlm1688.com/api/order/payNotify -#pay.notifyUrlDev= - +pay.mchId=1673516176 +pay.appId=wxa4d29e67e8a58d38 +pay.mchKey=GVIP1008611ABCDEFGGGGJKHLOSJFLGK +pay.keyPath= +pay.notifyUrl=http://h5.xzaiyp.top/api/order/payNotify +pay.notifyUrlDev=http://h5.xzaiyp.top/api/order/payNotify +pay.notifyVipUrl=http://h5.xzaiyp.top/api/order/vipPayNotify +pay.notifyUrlVipDev=http://h5.xzaiyp.top/api/order/vipPayNotify diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityClick/controller/CityClickController.java b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityClick/controller/CityClickController.java new file mode 100644 index 0000000..557f79f --- /dev/null +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityClick/controller/CityClickController.java @@ -0,0 +1,171 @@ +package org.jeecg.modules.cityClick.controller; + +import java.util.Arrays; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; +import java.io.IOException; +import java.io.UnsupportedEncodingException; +import java.net.URLDecoder; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import org.jeecg.common.api.vo.Result; +import org.jeecg.common.system.query.QueryGenerator; +import org.jeecg.common.util.oConvertUtils; +import org.jeecg.modules.cityClick.entity.CityClick; +import org.jeecg.modules.cityClick.service.ICityClickService; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import lombok.extern.slf4j.Slf4j; + +import org.jeecgframework.poi.excel.ExcelImportUtil; +import org.jeecgframework.poi.excel.def.NormalExcelConstants; +import org.jeecgframework.poi.excel.entity.ExportParams; +import org.jeecgframework.poi.excel.entity.ImportParams; +import org.jeecgframework.poi.excel.view.JeecgEntityExcelView; +import org.jeecg.common.system.base.controller.JeecgController; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; +import org.springframework.web.multipart.MultipartHttpServletRequest; +import org.springframework.web.servlet.ModelAndView; +import com.alibaba.fastjson.JSON; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.jeecg.common.aspect.annotation.AutoLog; + + /** + * @Description: 点击联系电话记录 + * @Author: jeecg-boot + * @Date: 2024-11-26 + * @Version: V1.0 + */ +@Api(tags="点击联系电话记录") +@RestController +@RequestMapping("/cityClick/cityClick") +@Slf4j +public class CityClickController extends JeecgController { + @Autowired + private ICityClickService cityClickService; + + /** + * 分页列表查询 + * + * @param cityClick + * @param pageNo + * @param pageSize + * @param req + * @return + */ + //@AutoLog(value = "点击联系电话记录-分页列表查询") + @ApiOperation(value="点击联系电话记录-分页列表查询", notes="点击联系电话记录-分页列表查询") + @GetMapping(value = "/list") + public Result> queryPageList(CityClick cityClick, + @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, + @RequestParam(name="pageSize", defaultValue="10") Integer pageSize, + HttpServletRequest req) { + QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(cityClick, req.getParameterMap()); + Page page = new Page(pageNo, pageSize); + IPage pageList = cityClickService.page(page, queryWrapper); + return Result.OK(pageList); + } + + /** + * 添加 + * + * @param cityClick + * @return + */ + @AutoLog(value = "点击联系电话记录-添加") + @ApiOperation(value="点击联系电话记录-添加", notes="点击联系电话记录-添加") + @PostMapping(value = "/add") + public Result add(@RequestBody CityClick cityClick) { + cityClickService.save(cityClick); + return Result.OK("添加成功!"); + } + + /** + * 编辑 + * + * @param cityClick + * @return + */ + @AutoLog(value = "点击联系电话记录-编辑") + @ApiOperation(value="点击联系电话记录-编辑", notes="点击联系电话记录-编辑") + @RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST}) + public Result edit(@RequestBody CityClick cityClick) { + cityClickService.updateById(cityClick); + return Result.OK("编辑成功!"); + } + + /** + * 通过id删除 + * + * @param id + * @return + */ + @AutoLog(value = "点击联系电话记录-通过id删除") + @ApiOperation(value="点击联系电话记录-通过id删除", notes="点击联系电话记录-通过id删除") + @DeleteMapping(value = "/delete") + public Result delete(@RequestParam(name="id",required=true) String id) { + cityClickService.removeById(id); + return Result.OK("删除成功!"); + } + + /** + * 批量删除 + * + * @param ids + * @return + */ + @AutoLog(value = "点击联系电话记录-批量删除") + @ApiOperation(value="点击联系电话记录-批量删除", notes="点击联系电话记录-批量删除") + @DeleteMapping(value = "/deleteBatch") + public Result deleteBatch(@RequestParam(name="ids",required=true) String ids) { + this.cityClickService.removeByIds(Arrays.asList(ids.split(","))); + return Result.OK("批量删除成功!"); + } + + /** + * 通过id查询 + * + * @param id + * @return + */ + //@AutoLog(value = "点击联系电话记录-通过id查询") + @ApiOperation(value="点击联系电话记录-通过id查询", notes="点击联系电话记录-通过id查询") + @GetMapping(value = "/queryById") + public Result queryById(@RequestParam(name="id",required=true) String id) { + CityClick cityClick = cityClickService.getById(id); + if(cityClick==null) { + return Result.error("未找到对应数据"); + } + return Result.OK(cityClick); + } + + /** + * 导出excel + * + * @param request + * @param cityClick + */ + @RequestMapping(value = "/exportXls") + public ModelAndView exportXls(HttpServletRequest request, CityClick cityClick) { + return super.exportXls(request, cityClick, CityClick.class, "点击联系电话记录"); + } + + /** + * 通过excel导入数据 + * + * @param request + * @param response + * @return + */ + @RequestMapping(value = "/importExcel", method = RequestMethod.POST) + public Result importExcel(HttpServletRequest request, HttpServletResponse response) { + return super.importExcel(request, response, CityClick.class); + } + +} diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityClick/entity/CityClick.java b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityClick/entity/CityClick.java new file mode 100644 index 0000000..a935ee4 --- /dev/null +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityClick/entity/CityClick.java @@ -0,0 +1,66 @@ +package org.jeecg.modules.cityClick.entity; + +import java.io.Serializable; +import java.io.UnsupportedEncodingException; +import java.util.Date; +import java.math.BigDecimal; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import com.fasterxml.jackson.annotation.JsonFormat; +import org.springframework.format.annotation.DateTimeFormat; +import org.jeecgframework.poi.excel.annotation.Excel; +import org.jeecg.common.aspect.annotation.Dict; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +/** + * @Description: 点击联系电话记录 + * @Author: jeecg-boot + * @Date: 2024-11-26 + * @Version: V1.0 + */ +@Data +@TableName("city_click") +@Accessors(chain = true) +@EqualsAndHashCode(callSuper = false) +@ApiModel(value="city_click对象", description="点击联系电话记录") +public class CityClick implements Serializable { + private static final long serialVersionUID = 1L; + + /**主键*/ + @TableId(type = IdType.ASSIGN_ID) + @ApiModelProperty(value = "主键") + private java.lang.String id; + /**创建人*/ + @ApiModelProperty(value = "创建人") + private java.lang.String createBy; + /**创建日期*/ + @ApiModelProperty(value = "创建日期") + private java.util.Date createTime; + /**更新人*/ + @ApiModelProperty(value = "更新人") + private java.lang.String updateBy; + /**更新日期*/ + @ApiModelProperty(value = "更新日期") + private java.util.Date updateTime; + /**用户*/ + @Excel(name = "用户", width = 15) + @ApiModelProperty(value = "用户") + private java.lang.String userId; + /**类型*/ + @Excel(name = "类型", width = 15) + @ApiModelProperty(value = "类型") + private java.lang.String type; + /**溯源*/ + @Excel(name = "溯源", width = 15) + @ApiModelProperty(value = "溯源") + private java.lang.String orderId; + /**备注*/ + @Excel(name = "备注", width = 15) + @ApiModelProperty(value = "备注") + private java.lang.String title; +} diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityClick/mapper/CityClickMapper.java b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityClick/mapper/CityClickMapper.java new file mode 100644 index 0000000..2e50bce --- /dev/null +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityClick/mapper/CityClickMapper.java @@ -0,0 +1,17 @@ +package org.jeecg.modules.cityClick.mapper; + +import java.util.List; + +import org.apache.ibatis.annotations.Param; +import org.jeecg.modules.cityClick.entity.CityClick; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + * @Description: 点击联系电话记录 + * @Author: jeecg-boot + * @Date: 2024-11-26 + * @Version: V1.0 + */ +public interface CityClickMapper extends BaseMapper { + +} diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityClick/mapper/xml/CityClickMapper.xml b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityClick/mapper/xml/CityClickMapper.xml new file mode 100644 index 0000000..bb1652b --- /dev/null +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityClick/mapper/xml/CityClickMapper.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityClick/service/ICityClickService.java b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityClick/service/ICityClickService.java new file mode 100644 index 0000000..ab4d3ca --- /dev/null +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityClick/service/ICityClickService.java @@ -0,0 +1,14 @@ +package org.jeecg.modules.cityClick.service; + +import org.jeecg.modules.cityClick.entity.CityClick; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + * @Description: 点击联系电话记录 + * @Author: jeecg-boot + * @Date: 2024-11-26 + * @Version: V1.0 + */ +public interface ICityClickService extends IService { + +} diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityClick/service/impl/CityClickServiceImpl.java b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityClick/service/impl/CityClickServiceImpl.java new file mode 100644 index 0000000..9993e47 --- /dev/null +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityClick/service/impl/CityClickServiceImpl.java @@ -0,0 +1,19 @@ +package org.jeecg.modules.cityClick.service.impl; + +import org.jeecg.modules.cityClick.entity.CityClick; +import org.jeecg.modules.cityClick.mapper.CityClickMapper; +import org.jeecg.modules.cityClick.service.ICityClickService; +import org.springframework.stereotype.Service; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; + +/** + * @Description: 点击联系电话记录 + * @Author: jeecg-boot + * @Date: 2024-11-26 + * @Version: V1.0 + */ +@Service +public class CityClickServiceImpl extends ServiceImpl implements ICityClickService { + +} diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityClick/vue/CityClickList.vue b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityClick/vue/CityClickList.vue new file mode 100644 index 0000000..4997ed9 --- /dev/null +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityClick/vue/CityClickList.vue @@ -0,0 +1,189 @@ + + + + \ No newline at end of file diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityClick/vue/modules/CityClickForm.vue b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityClick/vue/modules/CityClickForm.vue new file mode 100644 index 0000000..d703c47 --- /dev/null +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityClick/vue/modules/CityClickForm.vue @@ -0,0 +1,119 @@ + + + \ No newline at end of file diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityClick/vue/modules/CityClickModal.Style#Drawer.vue b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityClick/vue/modules/CityClickModal.Style#Drawer.vue new file mode 100644 index 0000000..8bb4588 --- /dev/null +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityClick/vue/modules/CityClickModal.Style#Drawer.vue @@ -0,0 +1,84 @@ + + + + + \ No newline at end of file diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityClick/vue/modules/CityClickModal.vue b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityClick/vue/modules/CityClickModal.vue new file mode 100644 index 0000000..64df1ce --- /dev/null +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityClick/vue/modules/CityClickModal.vue @@ -0,0 +1,60 @@ + + + \ No newline at end of file diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityClick/vue3/CityClick.api.ts b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityClick/vue3/CityClick.api.ts new file mode 100644 index 0000000..0f9ee76 --- /dev/null +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityClick/vue3/CityClick.api.ts @@ -0,0 +1,61 @@ +import {defHttp} from '/@/utils/http/axios'; +import {Modal} from 'ant-design-vue'; + +enum Api { + list = '/cityClick/cityClick/list', + save='/cityClick/cityClick/add', + edit='/cityClick/cityClick/edit', + deleteOne = '/cityClick/cityClick/delete', + deleteBatch = '/cityClick/cityClick/deleteBatch', + importExcel = '/cityClick/cityClick/importExcel', + exportXls = '/cityClick/cityClick/exportXls', +} +/** + * 导出api + * @param params + */ +export const getExportUrl = Api.exportXls; +/** + * 导入api + */ +export const getImportUrl = Api.importExcel; +/** + * 列表接口 + * @param params + */ +export const list = (params) => + defHttp.get({url: Api.list, params}); + +/** + * 删除单个 + */ +export const deleteOne = (params,handleSuccess) => { + return defHttp.delete({url: Api.deleteOne, params}, {joinParamsToUrl: true}).then(() => { + handleSuccess(); + }); +} +/** + * 批量删除 + * @param params + */ +export const batchDelete = (params, handleSuccess) => { + Modal.confirm({ + title: '确认删除', + content: '是否删除选中数据', + okText: '确认', + cancelText: '取消', + onOk: () => { + return defHttp.delete({url: Api.deleteBatch, data: params}, {joinParamsToUrl: true}).then(() => { + handleSuccess(); + }); + } + }); +} +/** + * 保存或者更新 + * @param params + */ +export const saveOrUpdate = (params, isUpdate) => { + let url = isUpdate ? Api.edit : Api.save; + return defHttp.post({url: url, params}); +} diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityClick/vue3/CityClick.data.ts b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityClick/vue3/CityClick.data.ts new file mode 100644 index 0000000..68cf26e --- /dev/null +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityClick/vue3/CityClick.data.ts @@ -0,0 +1,53 @@ +import {BasicColumn} from '/@/components/Table'; +import {FormSchema} from '/@/components/Table'; +import { rules} from '/@/utils/helper/validator'; +import { render } from '/@/utils/common/renderUtils'; +//列表数据 +export const columns: BasicColumn[] = [ + { + title: '用户', + align:"center", + dataIndex: 'userId' + }, + { + title: '类型', + align:"center", + dataIndex: 'type' + }, + { + title: '溯源', + align:"center", + dataIndex: 'orderId' + }, + { + title: '备注', + align:"center", + dataIndex: 'title' + }, +]; +//查询数据 +export const searchFormSchema: FormSchema[] = [ +]; +//表单数据 +export const formSchema: FormSchema[] = [ + { + label: '用户', + field: 'userId', + component: 'Input', + }, + { + label: '类型', + field: 'type', + component: 'Input', + }, + { + label: '溯源', + field: 'orderId', + component: 'Input', + }, + { + label: '备注', + field: 'title', + component: 'Input', + }, +]; diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityClick/vue3/CityClickList.vue b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityClick/vue3/CityClickList.vue new file mode 100644 index 0000000..b1327cc --- /dev/null +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityClick/vue3/CityClickList.vue @@ -0,0 +1,162 @@ + + + + + \ No newline at end of file diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityClick/vue3/components/CityClickModal.vue b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityClick/vue3/components/CityClickModal.vue new file mode 100644 index 0000000..dc14df9 --- /dev/null +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityClick/vue3/components/CityClickModal.vue @@ -0,0 +1,58 @@ + + + + + \ No newline at end of file diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityConf/controller/CityConfController.java b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityConf/controller/CityConfController.java index 4400021..c65d879 100644 --- a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityConf/controller/CityConfController.java +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityConf/controller/CityConfController.java @@ -39,7 +39,7 @@ import org.jeecg.common.aspect.annotation.AutoLog; /** * @Description: 配置列表 * @Author: jeecg-boot - * @Date: 2024-10-26 + * @Date: 2024-11-26 * @Version: V1.0 */ @Api(tags="配置列表") diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityConf/entity/CityConf.java b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityConf/entity/CityConf.java index 9e708fc..6e25755 100644 --- a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityConf/entity/CityConf.java +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityConf/entity/CityConf.java @@ -20,7 +20,7 @@ import lombok.experimental.Accessors; /** * @Description: 配置列表 * @Author: jeecg-boot - * @Date: 2024-10-26 + * @Date: 2024-11-26 * @Version: V1.0 */ @Data @@ -67,4 +67,8 @@ public class CityConf implements Serializable { @Excel(name = "详情", width = 15) @ApiModelProperty(value = "详情") private java.lang.String keyDetails; + /**佣金*/ + @Excel(name = "佣金", width = 15) + @ApiModelProperty(value = "佣金") + private java.math.BigDecimal keyMoney; } diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityConf/mapper/CityConfMapper.java b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityConf/mapper/CityConfMapper.java index 70dfd9a..fb96880 100644 --- a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityConf/mapper/CityConfMapper.java +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityConf/mapper/CityConfMapper.java @@ -9,7 +9,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; /** * @Description: 配置列表 * @Author: jeecg-boot - * @Date: 2024-10-26 + * @Date: 2024-11-26 * @Version: V1.0 */ public interface CityConfMapper extends BaseMapper { diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityConf/service/ICityConfService.java b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityConf/service/ICityConfService.java index 9fb16e9..4691aeb 100644 --- a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityConf/service/ICityConfService.java +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityConf/service/ICityConfService.java @@ -6,7 +6,7 @@ import com.baomidou.mybatisplus.extension.service.IService; /** * @Description: 配置列表 * @Author: jeecg-boot - * @Date: 2024-10-26 + * @Date: 2024-11-26 * @Version: V1.0 */ public interface ICityConfService extends IService { diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityConf/service/impl/CityConfServiceImpl.java b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityConf/service/impl/CityConfServiceImpl.java index c7d3b17..ec81ead 100644 --- a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityConf/service/impl/CityConfServiceImpl.java +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityConf/service/impl/CityConfServiceImpl.java @@ -10,7 +10,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; /** * @Description: 配置列表 * @Author: jeecg-boot - * @Date: 2024-10-26 + * @Date: 2024-11-26 * @Version: V1.0 */ @Service diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityConf/vue/CityConfList.vue b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityConf/vue/CityConfList.vue index 8d9b774..ec3368f 100644 --- a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityConf/vue/CityConfList.vue +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityConf/vue/CityConfList.vue @@ -142,6 +142,11 @@ dataIndex: 'keyImage', scopedSlots: {customRender: 'imgSlot'} }, + { + title:'佣金', + align:"center", + dataIndex: 'keyMoney' + }, { title: '操作', dataIndex: 'action', @@ -181,6 +186,7 @@ fieldList.push({type:'string',value:'keyValue',text:'内容',dictCode:''}) fieldList.push({type:'Text',value:'keyImage',text:'图片',dictCode:''}) fieldList.push({type:'Text',value:'keyDetails',text:'详情',dictCode:''}) + fieldList.push({type:'BigDecimal',value:'keyMoney',text:'佣金',dictCode:''}) this.superFieldList = fieldList } } diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityConf/vue/modules/CityConfForm.vue b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityConf/vue/modules/CityConfForm.vue index 922a5d8..a6bc5d6 100644 --- a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityConf/vue/modules/CityConfForm.vue +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityConf/vue/modules/CityConfForm.vue @@ -28,6 +28,11 @@ + + + + + diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityConf/vue3/CityConf.data.ts b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityConf/vue3/CityConf.data.ts index bc53948..75aef0d 100644 --- a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityConf/vue3/CityConf.data.ts +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityConf/vue3/CityConf.data.ts @@ -25,6 +25,11 @@ export const columns: BasicColumn[] = [ dataIndex: 'keyImage', customRender:render.renderAvatar, }, + { + title: '佣金', + align:"center", + dataIndex: 'keyMoney' + }, ]; //查询数据 export const searchFormSchema: FormSchema[] = [ @@ -58,4 +63,9 @@ export const formSchema: FormSchema[] = [ field: 'keyDetails', component: 'JCodeEditor', //TODO String后缀暂未添加 }, + { + label: '佣金', + field: 'keyMoney', + component: 'InputNumber', + }, ]; diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityShop/controller/CityShopController.java b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityShop/controller/CityShopController.java index 36a1255..f149fee 100644 --- a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityShop/controller/CityShopController.java +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityShop/controller/CityShopController.java @@ -39,7 +39,7 @@ import org.jeecg.common.aspect.annotation.AutoLog; /** * @Description: 商铺信息表 * @Author: jeecg-boot - * @Date: 2024-11-25 + * @Date: 2024-11-26 * @Version: V1.0 */ @Api(tags="商铺信息表") diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityShop/entity/CityShop.java b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityShop/entity/CityShop.java index 73a96c2..dac5c13 100644 --- a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityShop/entity/CityShop.java +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityShop/entity/CityShop.java @@ -20,7 +20,7 @@ import lombok.experimental.Accessors; /** * @Description: 商铺信息表 * @Author: jeecg-boot - * @Date: 2024-11-25 + * @Date: 2024-11-26 * @Version: V1.0 */ @Data @@ -107,4 +107,20 @@ public class CityShop implements Serializable { @Excel(name = "是否营业", width = 15) @ApiModelProperty(value = "是否营业") private java.lang.String isOpen; + /**关联店主*/ + @Excel(name = "关联店主", width = 15) + @ApiModelProperty(value = "关联店主") + private java.lang.String shopUser; + /**店主姓名*/ + @Excel(name = "店主姓名", width = 15) + @ApiModelProperty(value = "店主姓名") + private java.lang.String shopName; + /**店主电话*/ + @Excel(name = "店主电话", width = 15) + @ApiModelProperty(value = "店主电话") + private java.lang.String shopPhone; + /**店主图片*/ + @Excel(name = "店主图片", width = 15) + @ApiModelProperty(value = "店主图片") + private java.lang.String shopImage; } diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityShop/mapper/CityShopMapper.java b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityShop/mapper/CityShopMapper.java index 9d046c9..07fe459 100644 --- a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityShop/mapper/CityShopMapper.java +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityShop/mapper/CityShopMapper.java @@ -9,7 +9,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; /** * @Description: 商铺信息表 * @Author: jeecg-boot - * @Date: 2024-11-25 + * @Date: 2024-11-26 * @Version: V1.0 */ public interface CityShopMapper extends BaseMapper { diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityShop/service/ICityShopService.java b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityShop/service/ICityShopService.java index c6ddafa..606f6c2 100644 --- a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityShop/service/ICityShopService.java +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityShop/service/ICityShopService.java @@ -6,7 +6,7 @@ import com.baomidou.mybatisplus.extension.service.IService; /** * @Description: 商铺信息表 * @Author: jeecg-boot - * @Date: 2024-11-25 + * @Date: 2024-11-26 * @Version: V1.0 */ public interface ICityShopService extends IService { diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityShop/service/impl/CityShopServiceImpl.java b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityShop/service/impl/CityShopServiceImpl.java index 1875cd4..62e0e5c 100644 --- a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityShop/service/impl/CityShopServiceImpl.java +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityShop/service/impl/CityShopServiceImpl.java @@ -10,7 +10,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; /** * @Description: 商铺信息表 * @Author: jeecg-boot - * @Date: 2024-11-25 + * @Date: 2024-11-26 * @Version: V1.0 */ @Service diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityShop/vue/CityShopList.vue b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityShop/vue/CityShopList.vue index 672e498..651571c 100644 --- a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityShop/vue/CityShopList.vue +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityShop/vue/CityShopList.vue @@ -225,6 +225,27 @@ align:"center", dataIndex: 'isOpen' }, + { + title:'关联店主', + align:"center", + dataIndex: 'shopUser' + }, + { + title:'店主姓名', + align:"center", + dataIndex: 'shopName' + }, + { + title:'店主电话', + align:"center", + dataIndex: 'shopPhone' + }, + { + title:'店主图片', + align:"center", + dataIndex: 'shopImage', + scopedSlots: {customRender: 'imgSlot'} + }, { title: '操作', dataIndex: 'action', @@ -275,6 +296,10 @@ fieldList.push({type:'string',value:'longitude',text:'经度',dictCode:''}) fieldList.push({type:'string',value:'latitude',text:'纬度',dictCode:''}) fieldList.push({type:'string',value:'isOpen',text:'是否营业',dictCode:''}) + fieldList.push({type:'string',value:'shopUser',text:'关联店主',dictCode:''}) + fieldList.push({type:'string',value:'shopName',text:'店主姓名',dictCode:''}) + fieldList.push({type:'string',value:'shopPhone',text:'店主电话',dictCode:''}) + fieldList.push({type:'Text',value:'shopImage',text:'店主图片',dictCode:''}) this.superFieldList = fieldList } } diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityShop/vue/modules/CityShopForm.vue b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityShop/vue/modules/CityShopForm.vue index e0dd05e..71102b8 100644 --- a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityShop/vue/modules/CityShopForm.vue +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityShop/vue/modules/CityShopForm.vue @@ -78,6 +78,26 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityShop/vue3/CityShop.data.ts b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityShop/vue3/CityShop.data.ts index dc1c4d0..e534e33 100644 --- a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityShop/vue3/CityShop.data.ts +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityShop/vue3/CityShop.data.ts @@ -88,6 +88,27 @@ export const columns: BasicColumn[] = [ align:"center", dataIndex: 'isOpen' }, + { + title: '关联店主', + align:"center", + dataIndex: 'shopUser' + }, + { + title: '店主姓名', + align:"center", + dataIndex: 'shopName' + }, + { + title: '店主电话', + align:"center", + dataIndex: 'shopPhone' + }, + { + title: '店主图片', + align:"center", + dataIndex: 'shopImage', + customRender:render.renderAvatar, + }, ]; //查询数据 export const searchFormSchema: FormSchema[] = [ @@ -187,4 +208,26 @@ export const formSchema: FormSchema[] = [ field: 'isOpen', component: 'Input', }, + { + label: '关联店主', + field: 'shopUser', + component: 'Input', + }, + { + label: '店主姓名', + field: 'shopName', + component: 'Input', + }, + { + label: '店主电话', + field: 'shopPhone', + component: 'Input', + }, + { + label: '店主图片', + field: 'shopImage', + component: 'JImageUpload', + componentProps:{ + }, + }, ]; diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityShopping/controller/CityShoppingController.java b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityShopping/controller/CityShoppingController.java index d79a032..2e11248 100644 --- a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityShopping/controller/CityShoppingController.java +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityShopping/controller/CityShoppingController.java @@ -39,7 +39,7 @@ import org.jeecg.common.aspect.annotation.AutoLog; /** * @Description: 商城表 * @Author: jeecg-boot - * @Date: 2024-11-25 + * @Date: 2024-11-27 * @Version: V1.0 */ @Api(tags="商城表") diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityShopping/entity/CityShopping.java b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityShopping/entity/CityShopping.java index bdb6475..43b5fb8 100644 --- a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityShopping/entity/CityShopping.java +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityShopping/entity/CityShopping.java @@ -20,7 +20,7 @@ import lombok.experimental.Accessors; /** * @Description: 商城表 * @Author: jeecg-boot - * @Date: 2024-11-25 + * @Date: 2024-11-27 * @Version: V1.0 */ @Data @@ -104,4 +104,8 @@ public class CityShopping implements Serializable { @Dict(dicCode = "class_name_no") @ApiModelProperty(value = "商品类型") private java.lang.Integer className; + /**是否展示在主页*/ + @Excel(name = "是否展示在主页", width = 15) + @ApiModelProperty(value = "是否展示在主页") + private java.lang.String isIndex; } diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityShopping/mapper/CityShoppingMapper.java b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityShopping/mapper/CityShoppingMapper.java index 7132983..66ffdfd 100644 --- a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityShopping/mapper/CityShoppingMapper.java +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityShopping/mapper/CityShoppingMapper.java @@ -9,7 +9,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; /** * @Description: 商城表 * @Author: jeecg-boot - * @Date: 2024-11-25 + * @Date: 2024-11-27 * @Version: V1.0 */ public interface CityShoppingMapper extends BaseMapper { diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityShopping/service/ICityShoppingService.java b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityShopping/service/ICityShoppingService.java index 1652582..0ddf117 100644 --- a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityShopping/service/ICityShoppingService.java +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityShopping/service/ICityShoppingService.java @@ -6,7 +6,7 @@ import com.baomidou.mybatisplus.extension.service.IService; /** * @Description: 商城表 * @Author: jeecg-boot - * @Date: 2024-11-25 + * @Date: 2024-11-27 * @Version: V1.0 */ public interface ICityShoppingService extends IService { diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityShopping/service/impl/CityShoppingServiceImpl.java b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityShopping/service/impl/CityShoppingServiceImpl.java index 7ebca1f..532e782 100644 --- a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityShopping/service/impl/CityShoppingServiceImpl.java +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityShopping/service/impl/CityShoppingServiceImpl.java @@ -10,7 +10,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; /** * @Description: 商城表 * @Author: jeecg-boot - * @Date: 2024-11-25 + * @Date: 2024-11-27 * @Version: V1.0 */ @Service diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityShopping/vue/CityShoppingList.vue b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityShopping/vue/CityShoppingList.vue index 99e4c49..af6e565 100644 --- a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityShopping/vue/CityShoppingList.vue +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityShopping/vue/CityShoppingList.vue @@ -217,6 +217,12 @@ align:"center", dataIndex: 'className_dictText' }, + { + title:'是否展示在主页', + align:"center", + dataIndex: 'isIndex', + customRender: (text) => (text ? filterMultiDictText(this.dictOptions['isIndex'], text) : ''), + }, { title: '操作', dataIndex: 'action', @@ -240,6 +246,7 @@ }, created() { this.$set(this.dictOptions, 'isOpen', [{text:'是',value:'Y'},{text:'否',value:'N'}]) + this.$set(this.dictOptions, 'isIndex', [{text:'是',value:'Y'},{text:'否',value:'N'}]) this.getSuperFieldList(); }, computed: { @@ -267,6 +274,7 @@ fieldList.push({type:'switch',value:'isOpen',text:'是否上架'}) fieldList.push({type:'sel_search',value:'shopId',text:'关联店铺',dictTable:"city_shop", dictText:'title', dictCode:'id'}) fieldList.push({type:'int',value:'className',text:'商品类型',dictCode:'class_name_no'}) + fieldList.push({type:'switch',value:'isIndex',text:'是否展示在主页'}) this.superFieldList = fieldList } } diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityShopping/vue/modules/CityShoppingForm.vue b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityShopping/vue/modules/CityShoppingForm.vue index 5c8cacb..6b9a691 100644 --- a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityShopping/vue/modules/CityShoppingForm.vue +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityShopping/vue/modules/CityShoppingForm.vue @@ -68,6 +68,11 @@ + + + + + diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityShopping/vue3/CityShopping.data.ts b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityShopping/vue3/CityShopping.data.ts index 64108f6..fb07f7e 100644 --- a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityShopping/vue3/CityShopping.data.ts +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityShopping/vue3/CityShopping.data.ts @@ -86,6 +86,14 @@ export const columns: BasicColumn[] = [ align:"center", dataIndex: 'className_dictText' }, + { + title: '是否展示在主页', + align:"center", + dataIndex: 'isIndex', + customRender:({text}) => { + return render.renderSwitch(text, [{text:'是',value:'Y'},{text:'否',value:'N'}]) + }, + }, ]; //查询数据 export const searchFormSchema: FormSchema[] = [ @@ -178,4 +186,11 @@ export const formSchema: FormSchema[] = [ dictCode:"class_name_no" }, }, + { + label: '是否展示在主页', + field: 'isIndex', + component: 'JSwitch', + componentProps:{ + }, + }, ]; diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityVipLog/controller/CityVipLogController.java b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityVipLog/controller/CityVipLogController.java new file mode 100644 index 0000000..08ece0a --- /dev/null +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityVipLog/controller/CityVipLogController.java @@ -0,0 +1,171 @@ +package org.jeecg.modules.cityVipLog.controller; + +import java.util.Arrays; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; +import java.io.IOException; +import java.io.UnsupportedEncodingException; +import java.net.URLDecoder; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import org.jeecg.common.api.vo.Result; +import org.jeecg.common.system.query.QueryGenerator; +import org.jeecg.common.util.oConvertUtils; +import org.jeecg.modules.cityVipLog.entity.CityVipLog; +import org.jeecg.modules.cityVipLog.service.ICityVipLogService; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import lombok.extern.slf4j.Slf4j; + +import org.jeecgframework.poi.excel.ExcelImportUtil; +import org.jeecgframework.poi.excel.def.NormalExcelConstants; +import org.jeecgframework.poi.excel.entity.ExportParams; +import org.jeecgframework.poi.excel.entity.ImportParams; +import org.jeecgframework.poi.excel.view.JeecgEntityExcelView; +import org.jeecg.common.system.base.controller.JeecgController; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; +import org.springframework.web.multipart.MultipartHttpServletRequest; +import org.springframework.web.servlet.ModelAndView; +import com.alibaba.fastjson.JSON; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.jeecg.common.aspect.annotation.AutoLog; + + /** + * @Description: 开通记录 + * @Author: jeecg-boot + * @Date: 2024-11-26 + * @Version: V1.0 + */ +@Api(tags="开通记录") +@RestController +@RequestMapping("/cityVipLog/cityVipLog") +@Slf4j +public class CityVipLogController extends JeecgController { + @Autowired + private ICityVipLogService cityVipLogService; + + /** + * 分页列表查询 + * + * @param cityVipLog + * @param pageNo + * @param pageSize + * @param req + * @return + */ + //@AutoLog(value = "开通记录-分页列表查询") + @ApiOperation(value="开通记录-分页列表查询", notes="开通记录-分页列表查询") + @GetMapping(value = "/list") + public Result> queryPageList(CityVipLog cityVipLog, + @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, + @RequestParam(name="pageSize", defaultValue="10") Integer pageSize, + HttpServletRequest req) { + QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(cityVipLog, req.getParameterMap()); + Page page = new Page(pageNo, pageSize); + IPage pageList = cityVipLogService.page(page, queryWrapper); + return Result.OK(pageList); + } + + /** + * 添加 + * + * @param cityVipLog + * @return + */ + @AutoLog(value = "开通记录-添加") + @ApiOperation(value="开通记录-添加", notes="开通记录-添加") + @PostMapping(value = "/add") + public Result add(@RequestBody CityVipLog cityVipLog) { + cityVipLogService.save(cityVipLog); + return Result.OK("添加成功!"); + } + + /** + * 编辑 + * + * @param cityVipLog + * @return + */ + @AutoLog(value = "开通记录-编辑") + @ApiOperation(value="开通记录-编辑", notes="开通记录-编辑") + @RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST}) + public Result edit(@RequestBody CityVipLog cityVipLog) { + cityVipLogService.updateById(cityVipLog); + return Result.OK("编辑成功!"); + } + + /** + * 通过id删除 + * + * @param id + * @return + */ + @AutoLog(value = "开通记录-通过id删除") + @ApiOperation(value="开通记录-通过id删除", notes="开通记录-通过id删除") + @DeleteMapping(value = "/delete") + public Result delete(@RequestParam(name="id",required=true) String id) { + cityVipLogService.removeById(id); + return Result.OK("删除成功!"); + } + + /** + * 批量删除 + * + * @param ids + * @return + */ + @AutoLog(value = "开通记录-批量删除") + @ApiOperation(value="开通记录-批量删除", notes="开通记录-批量删除") + @DeleteMapping(value = "/deleteBatch") + public Result deleteBatch(@RequestParam(name="ids",required=true) String ids) { + this.cityVipLogService.removeByIds(Arrays.asList(ids.split(","))); + return Result.OK("批量删除成功!"); + } + + /** + * 通过id查询 + * + * @param id + * @return + */ + //@AutoLog(value = "开通记录-通过id查询") + @ApiOperation(value="开通记录-通过id查询", notes="开通记录-通过id查询") + @GetMapping(value = "/queryById") + public Result queryById(@RequestParam(name="id",required=true) String id) { + CityVipLog cityVipLog = cityVipLogService.getById(id); + if(cityVipLog==null) { + return Result.error("未找到对应数据"); + } + return Result.OK(cityVipLog); + } + + /** + * 导出excel + * + * @param request + * @param cityVipLog + */ + @RequestMapping(value = "/exportXls") + public ModelAndView exportXls(HttpServletRequest request, CityVipLog cityVipLog) { + return super.exportXls(request, cityVipLog, CityVipLog.class, "开通记录"); + } + + /** + * 通过excel导入数据 + * + * @param request + * @param response + * @return + */ + @RequestMapping(value = "/importExcel", method = RequestMethod.POST) + public Result importExcel(HttpServletRequest request, HttpServletResponse response) { + return super.importExcel(request, response, CityVipLog.class); + } + +} diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityVipLog/entity/CityVipLog.java b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityVipLog/entity/CityVipLog.java new file mode 100644 index 0000000..58e326d --- /dev/null +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityVipLog/entity/CityVipLog.java @@ -0,0 +1,78 @@ +package org.jeecg.modules.cityVipLog.entity; + +import java.io.Serializable; +import java.io.UnsupportedEncodingException; +import java.util.Date; +import java.math.BigDecimal; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import com.fasterxml.jackson.annotation.JsonFormat; +import org.springframework.format.annotation.DateTimeFormat; +import org.jeecgframework.poi.excel.annotation.Excel; +import org.jeecg.common.aspect.annotation.Dict; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +/** + * @Description: 开通记录 + * @Author: jeecg-boot + * @Date: 2024-11-26 + * @Version: V1.0 + */ +@Data +@TableName("city_vip_log") +@Accessors(chain = true) +@EqualsAndHashCode(callSuper = false) +@ApiModel(value="city_vip_log对象", description="开通记录") +public class CityVipLog implements Serializable { + private static final long serialVersionUID = 1L; + + /**主键*/ + @TableId(type = IdType.ASSIGN_ID) + @ApiModelProperty(value = "主键") + private java.lang.String id; + /**创建人*/ + @ApiModelProperty(value = "创建人") + private java.lang.String createBy; + /**创建日期*/ + @ApiModelProperty(value = "创建日期") + private java.util.Date createTime; + /**更新人*/ + @ApiModelProperty(value = "更新人") + private java.lang.String updateBy; + /**更新日期*/ + @ApiModelProperty(value = "更新日期") + private java.util.Date updateTime; + /**用户*/ + @Excel(name = "用户", width = 15) + @ApiModelProperty(value = "用户") + private java.lang.String userId; + /**开通时间*/ + @Excel(name = "开通时间", width = 15) + @ApiModelProperty(value = "开通时间") + private java.util.Date startTime; + /**结束时间*/ + @Excel(name = "结束时间", width = 15) + @ApiModelProperty(value = "结束时间") + private java.util.Date endTime; + /**类型*/ + @Excel(name = "类型", width = 15) + @ApiModelProperty(value = "类型") + private java.lang.Integer type; + /**是否支付*/ + @Excel(name = "是否支付", width = 15) + @ApiModelProperty(value = "是否支付") + private java.lang.String isPay; + /**产生佣金*/ + @Excel(name = "产生佣金", width = 15) + @ApiModelProperty(value = "产生佣金") + private java.math.BigDecimal giveMoney; + /**佣金获得*/ + @Excel(name = "佣金获得", width = 15) + @ApiModelProperty(value = "佣金获得") + private java.lang.String giveUser; +} diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityVipLog/mapper/CityVipLogMapper.java b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityVipLog/mapper/CityVipLogMapper.java new file mode 100644 index 0000000..fa9b7fd --- /dev/null +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityVipLog/mapper/CityVipLogMapper.java @@ -0,0 +1,17 @@ +package org.jeecg.modules.cityVipLog.mapper; + +import java.util.List; + +import org.apache.ibatis.annotations.Param; +import org.jeecg.modules.cityVipLog.entity.CityVipLog; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + * @Description: 开通记录 + * @Author: jeecg-boot + * @Date: 2024-11-26 + * @Version: V1.0 + */ +public interface CityVipLogMapper extends BaseMapper { + +} diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityVipLog/mapper/xml/CityVipLogMapper.xml b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityVipLog/mapper/xml/CityVipLogMapper.xml new file mode 100644 index 0000000..ce33ffe --- /dev/null +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityVipLog/mapper/xml/CityVipLogMapper.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityVipLog/service/ICityVipLogService.java b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityVipLog/service/ICityVipLogService.java new file mode 100644 index 0000000..5e9b9fa --- /dev/null +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityVipLog/service/ICityVipLogService.java @@ -0,0 +1,14 @@ +package org.jeecg.modules.cityVipLog.service; + +import org.jeecg.modules.cityVipLog.entity.CityVipLog; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + * @Description: 开通记录 + * @Author: jeecg-boot + * @Date: 2024-11-26 + * @Version: V1.0 + */ +public interface ICityVipLogService extends IService { + +} diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityVipLog/service/impl/CityVipLogServiceImpl.java b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityVipLog/service/impl/CityVipLogServiceImpl.java new file mode 100644 index 0000000..69f062b --- /dev/null +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityVipLog/service/impl/CityVipLogServiceImpl.java @@ -0,0 +1,19 @@ +package org.jeecg.modules.cityVipLog.service.impl; + +import org.jeecg.modules.cityVipLog.entity.CityVipLog; +import org.jeecg.modules.cityVipLog.mapper.CityVipLogMapper; +import org.jeecg.modules.cityVipLog.service.ICityVipLogService; +import org.springframework.stereotype.Service; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; + +/** + * @Description: 开通记录 + * @Author: jeecg-boot + * @Date: 2024-11-26 + * @Version: V1.0 + */ +@Service +public class CityVipLogServiceImpl extends ServiceImpl implements ICityVipLogService { + +} diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityVipLog/vue/CityVipLogList.vue b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityVipLog/vue/CityVipLogList.vue new file mode 100644 index 0000000..0711447 --- /dev/null +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityVipLog/vue/CityVipLogList.vue @@ -0,0 +1,207 @@ + + + + \ No newline at end of file diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityVipLog/vue/modules/CityVipLogForm.vue b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityVipLog/vue/modules/CityVipLogForm.vue new file mode 100644 index 0000000..ed7276f --- /dev/null +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityVipLog/vue/modules/CityVipLogForm.vue @@ -0,0 +1,134 @@ + + + \ No newline at end of file diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityVipLog/vue/modules/CityVipLogModal.Style#Drawer.vue b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityVipLog/vue/modules/CityVipLogModal.Style#Drawer.vue new file mode 100644 index 0000000..845cdec --- /dev/null +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityVipLog/vue/modules/CityVipLogModal.Style#Drawer.vue @@ -0,0 +1,84 @@ + + + + + \ No newline at end of file diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityVipLog/vue/modules/CityVipLogModal.vue b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityVipLog/vue/modules/CityVipLogModal.vue new file mode 100644 index 0000000..1b965c6 --- /dev/null +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityVipLog/vue/modules/CityVipLogModal.vue @@ -0,0 +1,60 @@ + + + \ No newline at end of file diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityVipLog/vue3/CityVipLog.api.ts b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityVipLog/vue3/CityVipLog.api.ts new file mode 100644 index 0000000..5a3449c --- /dev/null +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityVipLog/vue3/CityVipLog.api.ts @@ -0,0 +1,61 @@ +import {defHttp} from '/@/utils/http/axios'; +import {Modal} from 'ant-design-vue'; + +enum Api { + list = '/cityVipLog/cityVipLog/list', + save='/cityVipLog/cityVipLog/add', + edit='/cityVipLog/cityVipLog/edit', + deleteOne = '/cityVipLog/cityVipLog/delete', + deleteBatch = '/cityVipLog/cityVipLog/deleteBatch', + importExcel = '/cityVipLog/cityVipLog/importExcel', + exportXls = '/cityVipLog/cityVipLog/exportXls', +} +/** + * 导出api + * @param params + */ +export const getExportUrl = Api.exportXls; +/** + * 导入api + */ +export const getImportUrl = Api.importExcel; +/** + * 列表接口 + * @param params + */ +export const list = (params) => + defHttp.get({url: Api.list, params}); + +/** + * 删除单个 + */ +export const deleteOne = (params,handleSuccess) => { + return defHttp.delete({url: Api.deleteOne, params}, {joinParamsToUrl: true}).then(() => { + handleSuccess(); + }); +} +/** + * 批量删除 + * @param params + */ +export const batchDelete = (params, handleSuccess) => { + Modal.confirm({ + title: '确认删除', + content: '是否删除选中数据', + okText: '确认', + cancelText: '取消', + onOk: () => { + return defHttp.delete({url: Api.deleteBatch, data: params}, {joinParamsToUrl: true}).then(() => { + handleSuccess(); + }); + } + }); +} +/** + * 保存或者更新 + * @param params + */ +export const saveOrUpdate = (params, isUpdate) => { + let url = isUpdate ? Api.edit : Api.save; + return defHttp.post({url: url, params}); +} diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityVipLog/vue3/CityVipLog.data.ts b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityVipLog/vue3/CityVipLog.data.ts new file mode 100644 index 0000000..44e70fd --- /dev/null +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityVipLog/vue3/CityVipLog.data.ts @@ -0,0 +1,83 @@ +import {BasicColumn} from '/@/components/Table'; +import {FormSchema} from '/@/components/Table'; +import { rules} from '/@/utils/helper/validator'; +import { render } from '/@/utils/common/renderUtils'; +//列表数据 +export const columns: BasicColumn[] = [ + { + title: '用户', + align:"center", + dataIndex: 'userId' + }, + { + title: '开通时间', + align:"center", + dataIndex: 'startTime' + }, + { + title: '结束时间', + align:"center", + dataIndex: 'endTime' + }, + { + title: '类型', + align:"center", + dataIndex: 'type' + }, + { + title: '是否支付', + align:"center", + dataIndex: 'isPay' + }, + { + title: '产生佣金', + align:"center", + dataIndex: 'giveMoney' + }, + { + title: '佣金获得', + align:"center", + dataIndex: 'giveUser' + }, +]; +//查询数据 +export const searchFormSchema: FormSchema[] = [ +]; +//表单数据 +export const formSchema: FormSchema[] = [ + { + label: '用户', + field: 'userId', + component: 'Input', + }, + { + label: '开通时间', + field: 'startTime', + component: 'Input', + }, + { + label: '结束时间', + field: 'endTime', + component: 'Input', + }, + { + label: '类型', + field: 'type', + component: 'InputNumber', + }, + { + label: '是否支付', + field: 'isPay', + component: 'Input', + }, + { + label: '产生佣金', + field: 'giveMoney', + component: 'InputNumber', + }, + { + label: '佣金获得', + field: 'giveUser', + component: 'Input', + }, +]; diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityVipLog/vue3/CityVipLogList.vue b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityVipLog/vue3/CityVipLogList.vue new file mode 100644 index 0000000..fbaf11b --- /dev/null +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityVipLog/vue3/CityVipLogList.vue @@ -0,0 +1,162 @@ + + + + + \ No newline at end of file diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityVipLog/vue3/components/CityVipLogModal.vue b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityVipLog/vue3/components/CityVipLogModal.vue new file mode 100644 index 0000000..91352ea --- /dev/null +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityVipLog/vue3/components/CityVipLogModal.vue @@ -0,0 +1,58 @@ + + + + + \ No newline at end of file diff --git a/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/bean/PageBean.java b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/bean/PageBean.java index 61119b5..f4268de 100644 --- a/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/bean/PageBean.java +++ b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/bean/PageBean.java @@ -6,6 +6,7 @@ import lombok.Data; @Data public class PageBean { + private Integer className; /**显示条数*/ @ApiModelProperty(value = "显示条数" ) private Integer pageSize; diff --git a/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/bean/YaoDuOrderBean.java b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/bean/YaoDuOrderBean.java index ad87876..d127602 100644 --- a/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/bean/YaoDuOrderBean.java +++ b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/bean/YaoDuOrderBean.java @@ -6,6 +6,9 @@ import lombok.Data; @Data public class YaoDuOrderBean { + @ApiModelProperty(value = "订单状态" ) + private Integer state; + /**显示条数*/ @ApiModelProperty(value = "显示条数" ) private Integer pageSize; diff --git a/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/service/YaoDuApiService.java b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/service/YaoDuApiService.java index b4437d5..13e1575 100644 --- a/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/service/YaoDuApiService.java +++ b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/service/YaoDuApiService.java @@ -96,7 +96,7 @@ public interface YaoDuApiService { //点击查看联系方式 类型 0帖子 1租房 2工作 3门店 - Result checkGivePhone(String token,String type, String id); + Result checkGivePhone(String token,String type, String id,String title); //点击查看地图 类型 0帖子 1租房 2工作 3门店 Result checkMap(String token,String type, String id); @@ -209,5 +209,9 @@ public interface YaoDuApiService { Result getWalletFlow(String token,PageBean pageBean); + //根据商品查询店铺商品 + Result getGoodsList(String token,String shopId,PageBean pageBean); + + } diff --git a/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/service/YaoDuOrderService.java b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/service/YaoDuOrderService.java index 317ad0d..21b3ba6 100644 --- a/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/service/YaoDuOrderService.java +++ b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/service/YaoDuOrderService.java @@ -19,9 +19,15 @@ public interface YaoDuOrderService { Result getOrderDetail(String token,String orderId); //商城-支付回调 - Result payNotify(String requestBody); + Object payNotify(String requestBody); + //开通会员支付回调 + Object vipPayNotify(String requestBody); //开通万能墙会员 Result openMember(String token,Integer type); + + //查询当前开通会员以及过期时间 + Result getMemberInfo(String token); + } diff --git a/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/service/impl/YaoDuApiServiceImpl.java b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/service/impl/YaoDuApiServiceImpl.java index b4c8edf..4d65a68 100644 --- a/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/service/impl/YaoDuApiServiceImpl.java +++ b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/service/impl/YaoDuApiServiceImpl.java @@ -48,6 +48,8 @@ import org.jeecg.modules.cityBanner.service.ICityBannerService; import org.jeecg.modules.cityCat.entity.CityCat; import org.jeecg.modules.cityCat.service.ICityCatService; import org.jeecg.modules.cityCat.service.impl.CityCatServiceImpl; +import org.jeecg.modules.cityClick.entity.CityClick; +import org.jeecg.modules.cityClick.service.ICityClickService; import org.jeecg.modules.cityComment.entity.CityComment; import org.jeecg.modules.cityComment.service.ICityCommentService; import org.jeecg.modules.cityConf.entity.CityConf; @@ -105,6 +107,8 @@ public class YaoDuApiServiceImpl implements YaoDuApiService { //获取开通区域相关地址 @Resource private ICityAddrService cityService; + @Resource + private ICityClickService cityClickService; //获取banner相关接口信息 @Resource private ICityBannerService cityBannerService; @@ -297,7 +301,7 @@ public class YaoDuApiServiceImpl implements YaoDuApiService { CityConf notice = cityConfService.lambdaQuery().eq(CityConf::getKeyIcon, "notice").one(); - map.put("notice",notice.getKeyDetails()); + map.put("notice",notice); return Result.OK(map); } @@ -369,7 +373,7 @@ public class YaoDuApiServiceImpl implements YaoDuApiService { newRecords.add(cityTrends); } //随机排序帖子列表数据,每次刷新展示的数据不同 - Collections.shuffle(newRecords); +// Collections.shuffle(newRecords); page1.setRecords(newRecords); return Result.OK(page1); @@ -588,7 +592,47 @@ public class YaoDuApiServiceImpl implements YaoDuApiService { //点击查看联系方式 类型 0帖子 1租房 2工作 3门店 @Override - public Result checkGivePhone(String token,String type, String id){ + public Result checkGivePhone(String token,String type, String id,String title){ + HanHaiMember hanHaiMember = shiroRealm.checkUserTokenIsEffectHanHaiOpenId(token); + //查看是否是会员 + if(hanHaiMember.getIsPay() < 1){ + //查询当前点击查看了几次联系方式 + List list = cityClickService.lambdaQuery() + .eq(CityClick::getUserId, hanHaiMember.getId()) + .list(); + if(list.size() < 2){ + //增加点击记录 + CityClick cityClick = new CityClick(); + cityClick.setUserId(hanHaiMember.getId()); + cityClick.setType(type); + cityClick.setOrderId(id); + cityClick.setTitle("点击:"+title+"的联系方式"); + cityClickService.save(cityClick); + + }else if(list.size() >= 2){ + //查看积分是否充足 + if(hanHaiMember.getIntegerPrice().compareTo(new BigDecimal(2))>=0){ + return Result.error("积分不足"); + } + + //增加积分流水 + CityIntgerWater cityMoneyLog = new CityIntgerWater(); + cityMoneyLog.setCreateTime(new Date()); + cityMoneyLog.setType(0); + cityMoneyLog.setIntger(new BigDecimal(2)); + cityMoneyLog.setUserId(hanHaiMember.getId()); + cityMoneyLog.setTitle("查看联系方式"); + cityIntgerWaterService.save(cityMoneyLog); + + + //减少用户积分 + hanHaiMember.setIntegerPrice(hanHaiMember.getIntegerPrice().subtract(new BigDecimal(2))); + hanHaiMemberService.updateById(hanHaiMember); + + + } + + } return Result.OK(); } @@ -1326,6 +1370,9 @@ public class YaoDuApiServiceImpl implements YaoDuApiService { Page page = new Page(pageBean.getPageNo(), pageBean.getPageSize()); Page page1 = cityShoppingService.lambdaQuery() .orderByDesc(CityShopping::getCreateTime) + .eq(CityShopping::getClassName,pageBean.getClassName()) + .eq(CityShopping::getIsOpen,"Y") + .eq(CityShopping::getIsIndex,"Y") .page(page); //获取列表数据循环替换数据 List records = page1.getRecords(); @@ -1355,6 +1402,8 @@ public class YaoDuApiServiceImpl implements YaoDuApiService { HanHaiMember hanHaiMember = shiroRealm.checkUserTokenIsEffectHanHaiOpenId(token); Page page = new Page(pageBean.getPageNo(), pageBean.getPageSize()); Page page1 = cityAddressService.lambdaQuery() + .eq(CityAddress::getUserId,hanHaiMember.getId()) + .orderByDesc(CityAddress::getCreateTime) .page(page); return Result.OK(page1); @@ -1474,10 +1523,23 @@ public class YaoDuApiServiceImpl implements YaoDuApiService { public Result getWalletFlow(String token,PageBean pageBean){ HanHaiMember hanHaiMember = shiroRealm.checkUserTokenIsEffectHanHaiOpenId(token); Page page = new Page(pageBean.getPageNo(), pageBean.getPageSize()); - Page page1 = cityIntgerWaterService.lambdaQuery() - .eq(CityIntgerWater::getUserId, hanHaiMember.getId()) - .orderByDesc(CityIntgerWater::getCreateTime) + Page page1 = new Page<>(); + return Result.OK(page1); + } + + + + //根据商品查询店铺商品 + @Override + public Result getGoodsList(String token,String shopId,PageBean pageBean){ + HanHaiMember hanHaiMember = shiroRealm.checkUserTokenIsEffectHanHaiOpenId(token); + Page page = new Page(pageBean.getPageNo(), pageBean.getPageSize()); + Page page1 = cityShoppingService.lambdaQuery() + .eq(CityShopping::getShopId, shopId) + .eq(CityShopping::getIsOpen, "Y") + .orderByDesc(CityShopping::getCreateTime) .page(page); return Result.OK(page1); + } } diff --git a/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/service/impl/YaoDuOrderServiceImpl.java b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/service/impl/YaoDuOrderServiceImpl.java index 2029d1b..64dd441 100644 --- a/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/service/impl/YaoDuOrderServiceImpl.java +++ b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/service/impl/YaoDuOrderServiceImpl.java @@ -1,21 +1,28 @@ package org.jeecg.modules.api.service.impl; +import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.github.binarywang.wxpay.bean.notify.WxPayOrderNotifyResult; import lombok.extern.log4j.Log4j; import lombok.extern.log4j.Log4j2; import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang.time.DateUtils; import org.jeecg.common.api.vo.Result; import org.jeecg.config.shiro.ShiroRealm; import org.jeecg.modules.api.bean.YaoDuOrderBean; import org.jeecg.modules.api.service.YaoDuOrderService; import org.jeecg.modules.cityAddress.entity.CityAddress; import org.jeecg.modules.cityAddress.service.ICityAddressService; +import org.jeecg.modules.cityConf.entity.CityConf; +import org.jeecg.modules.cityConf.service.ICityConfService; import org.jeecg.modules.cityOrder.entity.CityOrder; import org.jeecg.modules.cityOrder.service.ICityOrderService; import org.jeecg.modules.cityShopping.entity.CityShopping; import org.jeecg.modules.cityShopping.service.ICityShoppingService; +import org.jeecg.modules.cityVipLog.entity.CityVipLog; +import org.jeecg.modules.cityVipLog.service.ICityVipLogService; import org.jeecg.modules.hanHaiMember.entity.HanHaiMember; +import org.jeecg.modules.hanHaiMember.service.IHanHaiMemberService; import org.jeecg.modules.pay.MpWxPayService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -23,6 +30,9 @@ import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.math.BigDecimal; import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; @Log4j2 @@ -44,6 +54,16 @@ public class YaoDuOrderServiceImpl implements YaoDuOrderService { //地址 @Resource private ICityAddressService cityAddressService; + //vip支付记录 + @Resource + private ICityVipLogService cityVipLogService; + //获取配置信息 + @Resource + private ICityConfService cityConfService; + //获取配置信息 + @Resource + private IHanHaiMemberService hanHaiMemberService; + @@ -156,7 +176,7 @@ public class YaoDuOrderServiceImpl implements YaoDuOrderService { //吊起微信支付 String s = price.multiply(new BigDecimal(100)).toString(); int i1 = Double.valueOf(s).intValue(); - Object appOrder = mpWxPayService.createOrderGo( + Object appOrder = mpWxPayService.createOrder( "购买"+ cityShopping.getName() , "127.0.0.1", cityOrder.getId(), @@ -177,6 +197,14 @@ public class YaoDuOrderServiceImpl implements YaoDuOrderService { .eq(CityOrder::getUserId,hanHaiMember.getId()) .orderByDesc(CityOrder::getCreateTime) .page(page); + //如果订单状态不为空 + if(null!=bean.getState()){ + page1 = cityOrderService.lambdaQuery() + .eq(CityOrder::getUserId,hanHaiMember.getId()) + .eq(CityOrder::getState,bean.getState()) + .orderByDesc(CityOrder::getCreateTime) + .page(page); + } return Result.OK(page1); } @@ -200,23 +228,119 @@ public class YaoDuOrderServiceImpl implements YaoDuOrderService { } + //开通会员支付回调 + @Override + public Object vipPayNotify(String requestBody){ + try { + WxPayOrderNotifyResult notify = mpWxPayService.notify(requestBody); + //获取订单号 + + String outTradeNo = notify.getOutTradeNo(); + log.info("支付回调订单号码:"+outTradeNo); + CityVipLog byId = cityVipLogService.lambdaQuery().eq(CityVipLog::getId,outTradeNo).one(); + //订单不为空 + if(null!=byId){ + //订单状态为未支付状态 + if("N".equals(byId.getIsPay())){ + //更新订单状态 + byId.setIsPay("Y"); + cityVipLogService.updateById(byId); + + //根据用户标识查询用户信息 + HanHaiMember hanHaiMember = hanHaiMemberService.getById(byId.getUserId()); + hanHaiMember.setIsPay(byId.getType()); + hanHaiMemberService.updateById(hanHaiMember); + + //查询邀请者 + HanHaiMember byId1 = hanHaiMemberService.getById(hanHaiMember.getShareId()); + if(null!=byId1){ + //增加佣金 + BigDecimal price = byId1.getPrice().add(byId.getGiveMoney()); + byId1.setPrice(price); + hanHaiMemberService.updateById(byId1); + } + + } + } + }catch (Exception e){ + e.printStackTrace(); + } + + return null; + } + + //开通万能墙会员 @Override public Result openMember(String token,Integer type){ HanHaiMember hanHaiMember = shiroRealm.checkUserTokenIsEffectHanHaiOpenId(token); + + CityConf vip = cityConfService.lambdaQuery().eq(CityConf::getKeyIcon, "vip").one(); + CityConf vipBig = cityConfService.lambdaQuery().eq(CityConf::getKeyIcon, "vipBig").one(); + + + + + //创建vip支付订单 + CityVipLog cityVipLog = new CityVipLog(); + String id = System.currentTimeMillis()+""; + cityVipLog.setId(id); + cityVipLog.setUserId(hanHaiMember.getId()); + cityVipLog.setType(type); + cityVipLog.setCreateTime(new Date()); + cityVipLog.setStartTime(new Date()); + + //过期时间为当前时间延后一个月 + cityVipLog.setEndTime(DateUtils.addMonths(new Date(), 1)); + + cityVipLog.setIsPay("N"); + + + String s = new BigDecimal(vip.getKeyValue()).multiply(new BigDecimal(100)).toString(); + //用户邀请标识不能为空 + if(StringUtils.isNotBlank(hanHaiMember.getShareId())){ + if(type == 1){ + cityVipLog.setGiveUser(hanHaiMember.getShareId()); + cityVipLog.setGiveMoney(vip.getKeyMoney()); + s = new BigDecimal(vip.getKeyValue()).multiply(new BigDecimal(100)).toString(); + } + if (type == 2){ + cityVipLog.setGiveUser(hanHaiMember.getShareId()); + cityVipLog.setGiveMoney(vipBig.getKeyMoney()); + s = new BigDecimal(vipBig.getKeyValue()).multiply(new BigDecimal(100)).toString(); + } + + } + + cityVipLogService.save(cityVipLog); + + //吊起微信支付 - String s = new BigDecimal(0.01).multiply(new BigDecimal(100)).toString(); + int i1 = Double.valueOf(s).intValue(); - Object appOrder = mpWxPayService.createOrderGo( + Object appOrder = mpWxPayService.createOrderVip( "购买会员" , "127.0.0.1", - System.currentTimeMillis()+"", + id, i1, - System.currentTimeMillis()+"", + id, hanHaiMember.getAppletOpenid(), - "{}"); + cityVipLog.toString()); return Result.OK("支付成功",appOrder); } + + + //查询当前开通会员以及过期时间 + @Override + public Result getMemberInfo(String token){ + HanHaiMember hanHaiMember = shiroRealm.checkUserTokenIsEffectHanHaiOpenId(token); + List y = cityVipLogService.lambdaQuery() + .orderByDesc(CityVipLog::getEndTime) + .eq(CityVipLog::getUserId, hanHaiMember.getId()) + .eq(CityVipLog::getIsPay, "Y") + .list(); + return Result.OK(y); + } } diff --git a/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/yaoduapi/YaoDuApiTokenController.java b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/yaoduapi/YaoDuApiTokenController.java index 5aa9537..359ece6 100644 --- a/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/yaoduapi/YaoDuApiTokenController.java +++ b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/yaoduapi/YaoDuApiTokenController.java @@ -50,8 +50,8 @@ public class YaoDuApiTokenController { //点击查看联系方式 类型 0帖子 1租房 2工作 3门店 @PostMapping(value = "/checkGivePhone") @ApiOperation(value="点击查看联系方式 类型 0帖子 1租房 2工作 3门店") - public Result checkGivePhone(@RequestHeader("X-Access-Token") String token,String type, String id) { - return yaoDuApiService.checkGivePhone(token,type,id); + public Result checkGivePhone(@RequestHeader("X-Access-Token") String token,String type, String id,String title) { + return yaoDuApiService.checkGivePhone(token,type,id,title); } @@ -261,4 +261,14 @@ public class YaoDuApiTokenController { } + //查询商品信息列表根据关联店铺标识 + @ApiOperation(value="查询商品信息列表根据关联店铺标识") + @GetMapping("/getGoodsList") + public Result getGoodsList(@RequestHeader("X-Access-Token") String token,String shopId,PageBean pageBean) + { + return yaoDuApiService.getGoodsList(token,shopId,pageBean); + } + + + } diff --git a/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/yaoduapi/YaoDuOrderController.java b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/yaoduapi/YaoDuOrderController.java index 5925ba0..48d86b3 100644 --- a/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/yaoduapi/YaoDuOrderController.java +++ b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/yaoduapi/YaoDuOrderController.java @@ -53,10 +53,9 @@ public class YaoDuOrderController { return yaoDuOrderService.getOrderDetail(token,orderId); } - //商城-支付回调 - @ApiOperation(value="商城-支付回调", notes="商城-支付回调") + @PostMapping("/payNotify") - public Result payNotify(@RequestBody String requestBody){ + public Object payNotify(@RequestBody String requestBody){ return yaoDuOrderService.payNotify(requestBody); } @@ -68,4 +67,20 @@ public class YaoDuOrderController { return yaoDuOrderService.openMember(token,type); } + + + @PostMapping("/vipOpenPayNotify") + public Object vipOpenPayNotify(@RequestBody String requestBody){ + return yaoDuOrderService.vipPayNotify(requestBody); + } + + + + //查询当前开通会员以及过期时间 + @ApiOperation(value="查询当前开通会员以及过期时间", notes="查询当前开通会员以及过期时间") + @GetMapping("/getMemberInfo") + public Result getMemberInfo(@RequestHeader("X-Access-Token") String token){ + return yaoDuOrderService.getMemberInfo(token); + } + } diff --git a/jeecg-boot-module-system/src/main/resources/pay_weixin.properties b/jeecg-boot-module-system/src/main/resources/pay_weixin.properties index fa11972..873d438 100644 --- a/jeecg-boot-module-system/src/main/resources/pay_weixin.properties +++ b/jeecg-boot-module-system/src/main/resources/pay_weixin.properties @@ -2,5 +2,7 @@ pay.mchId=1673516176 pay.appId=wxa4d29e67e8a58d38 pay.mchKey=GVIP1008611ABCDEFGGGGJKHLOSJFLGK pay.keyPath= -pay.notifyUrl=https://admin.hhlm1688.com/api/order/payNotify -pay.notifyUrlDev=https://admin.hhlm1688.com/api/order/payNotify \ No newline at end of file +pay.notifyUrl=http://h5.xzaiyp.top/api/order/payNotify +pay.notifyUrlDev=http://h5.xzaiyp.top/api/order/payNotify +pay.notifyVipUrl=http://h5.xzaiyp.top/api/order/vipPayNotify +pay.notifyUrlVipDev=http://h5.xzaiyp.top/api/order/vipPayNotify \ No newline at end of file