From eebcbd1473d574bd0fbaf07b534f25973b6ad48d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E5=AE=87=E8=88=AA?= <653809315@qq.com> Date: Thu, 16 May 2024 18:15:42 +0800 Subject: [PATCH] =?UTF-8?q?=E5=89=8D=E7=AB=AF=E9=A1=B5=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../app/controller/AppInformController.java | 114 +++ .../app/controller/AppOrderController.java | 120 +++ .../app/controller/AppVipController.java | 114 +++ .../ruoyi/app/controller/PayController.java | 45 +- .../java/com/ruoyi/app/domain/AppInform.java | 54 ++ .../java/com/ruoyi/app/domain/AppOrder.java | 114 +-- .../com/ruoyi/app/domain/AppUserDynamic.java | 6 + .../java/com/ruoyi/app/domain/AppVip.java | 68 ++ .../com/ruoyi/app/domain/dto/PayConfig.java | 2 +- .../com/ruoyi/app/domain/vo/AppOrderVo.java | 11 + .../com/ruoyi/app/mapper/AppInformMapper.java | 61 ++ .../com/ruoyi/app/mapper/AppOrderMapper.java | 7 +- .../com/ruoyi/app/mapper/AppVipMapper.java | 61 ++ .../com/ruoyi/app/service/AlipayService.java | 4 +- .../ruoyi/app/service/IAppInformService.java | 61 ++ .../ruoyi/app/service/IAppOrderService.java | 65 ++ .../com/ruoyi/app/service/IAppVipService.java | 61 ++ .../service/impl/AppInformServiceImpl.java | 96 ++ .../app/service/impl/AppOrderServiceImpl.java | 121 +++ .../service/impl/AppProvinceServiceImpl.java | 146 ++- .../app/service/impl/AppVipServiceImpl.java | 96 ++ .../resources/mapper/app/AppInformMapper.xml | 68 ++ .../resources/mapper/app/AppOrderMapper.xml | 13 +- .../mapper/app/AppUserDynamicMapper.xml | 13 +- .../resources/mapper/app/AppVipMapper.xml | 75 ++ gan-ui/src/api/app/gener.js | 11 + gan-ui/src/api/app/inform.js | 44 + gan-ui/src/api/app/order.js | 52 + gan-ui/src/api/app/vip.js | 44 + gan-ui/src/views/app/dynamic/detail.vue | 138 +-- gan-ui/src/views/app/dynamic/index.vue | 20 +- gan-ui/src/views/app/inform/index.vue | 245 +++++ gan-ui/src/views/app/order/index.vue | 366 +++++++ gan-ui/src/views/app/vip/gener/index.vue | 33 + gan-ui/src/views/app/vip/index.vue | 277 ++++++ gan-ui/src/views/index.vue | 909 ------------------ 36 files changed, 2565 insertions(+), 1170 deletions(-) create mode 100644 gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/controller/AppInformController.java create mode 100644 gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/controller/AppOrderController.java create mode 100644 gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/controller/AppVipController.java create mode 100644 gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/domain/AppInform.java create mode 100644 gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/domain/AppVip.java create mode 100644 gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/domain/vo/AppOrderVo.java create mode 100644 gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/mapper/AppInformMapper.java create mode 100644 gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/mapper/AppVipMapper.java create mode 100644 gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/service/IAppInformService.java create mode 100644 gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/service/IAppOrderService.java create mode 100644 gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/service/IAppVipService.java create mode 100644 gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/service/impl/AppInformServiceImpl.java create mode 100644 gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/service/impl/AppOrderServiceImpl.java create mode 100644 gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/service/impl/AppVipServiceImpl.java create mode 100644 gan-modules/ruoyi-gan/src/main/resources/mapper/app/AppInformMapper.xml create mode 100644 gan-modules/ruoyi-gan/src/main/resources/mapper/app/AppVipMapper.xml create mode 100644 gan-ui/src/api/app/gener.js create mode 100644 gan-ui/src/api/app/inform.js create mode 100644 gan-ui/src/api/app/order.js create mode 100644 gan-ui/src/api/app/vip.js create mode 100644 gan-ui/src/views/app/inform/index.vue create mode 100644 gan-ui/src/views/app/order/index.vue create mode 100644 gan-ui/src/views/app/vip/gener/index.vue create mode 100644 gan-ui/src/views/app/vip/index.vue diff --git a/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/controller/AppInformController.java b/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/controller/AppInformController.java new file mode 100644 index 0000000..1b24d49 --- /dev/null +++ b/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/controller/AppInformController.java @@ -0,0 +1,114 @@ +package com.ruoyi.app.controller; + +import java.util.List; +import java.io.IOException; +import javax.servlet.http.HttpServletResponse; + +import com.ruoyi.common.core.domain.R; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import com.ruoyi.common.log.annotation.Log; +import com.ruoyi.common.log.enums.BusinessType; +import com.ruoyi.common.security.annotation.RequiresPermissions; +import com.ruoyi.app.domain.AppInform; +import com.ruoyi.app.service.IAppInformService; +import com.ruoyi.common.core.web.controller.BaseController; +import com.ruoyi.common.core.web.domain.AjaxResult; +import com.ruoyi.common.core.utils.poi.ExcelUtil; +import com.ruoyi.common.core.web.page.TableDataInfo; + +/** + * 举报Controller + * + * @author wyh + * @date 2024-05-15 + */ +@RestController +@RequestMapping("/inform") +@Api(tags = "举报" , description = "举报") +public class AppInformController extends BaseController +{ + @Autowired + private IAppInformService appInformService; + + /** + * 查询举报列表 + */ +// @RequiresPermissions("app:inform:list") + @GetMapping("/list") + @ApiOperation(value = "查询举报", notes = "查询举报", httpMethod = "GET") + public TableDataInfo list(AppInform appInform) + { + startPage(); + List list = appInformService.selectAppInformList(appInform); + return getDataTable(list); + } + + /** + * 导出举报列表 + */ + @RequiresPermissions("app:inform:export") + @Log(title = "举报", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, AppInform appInform) + { + List list = appInformService.selectAppInformList(appInform); + ExcelUtil util = new ExcelUtil(AppInform.class); + util.exportExcel(response, list, "举报数据"); + } + + /** + * 获取举报详细信息 + */ + @RequiresPermissions("app:inform:query") + @GetMapping(value = "/{id}") + @ApiOperation(value = "获取举报详细信息", notes = "获取举报详细信息", httpMethod = "GET") + public AjaxResult getInfo(@PathVariable("id") Long id) + { + return success(appInformService.selectAppInformById(id)); + } + + /** + * 新增举报 + */ + @RequiresPermissions("app:inform:add") + @ApiOperation(value = "新增举报", notes = "新增举报", httpMethod = "POST") + @Log(title = "举报", businessType = BusinessType.INSERT) + @PostMapping("/add") + public AjaxResult add(@RequestBody AppInform appInform) + { + return toAjax(appInformService.insertAppInform(appInform)); + } + + /** + * 修改举报 + */ + @RequiresPermissions("app:inform:edit") + @ApiOperation(value = "修改举报", notes = "修改举报", httpMethod = "PUT") + @Log(title = "举报", businessType = BusinessType.UPDATE) + @PutMapping("/edit") + public AjaxResult edit(@RequestBody AppInform appInform) + { + return toAjax(appInformService.updateAppInform(appInform)); + } + + /** + * 删除举报 + */ + @RequiresPermissions("app:inform:remove") + @Log(title = "举报", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public AjaxResult remove(@PathVariable Long[] ids) + { + return toAjax(appInformService.deleteAppInformByIds(ids)); + } +} diff --git a/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/controller/AppOrderController.java b/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/controller/AppOrderController.java new file mode 100644 index 0000000..f7fe9d2 --- /dev/null +++ b/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/controller/AppOrderController.java @@ -0,0 +1,120 @@ +package com.ruoyi.app.controller; + +import java.util.List; +import java.io.IOException; +import javax.servlet.http.HttpServletResponse; + +import com.ruoyi.app.domain.vo.AppOrderVo; +import com.ruoyi.app.service.IAppOrderService; +import com.ruoyi.common.core.domain.R; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import com.ruoyi.common.log.annotation.Log; +import com.ruoyi.common.log.enums.BusinessType; +import com.ruoyi.common.security.annotation.RequiresPermissions; +import com.ruoyi.app.domain.AppOrder; +import com.ruoyi.common.core.web.controller.BaseController; +import com.ruoyi.common.core.web.domain.AjaxResult; +import com.ruoyi.common.core.utils.poi.ExcelUtil; +import com.ruoyi.common.core.web.page.TableDataInfo; + +/** + * 订单Controller + * + * @author wyh + * @date 2024-05-15 + */ +@RestController +@RequestMapping("/order") +@Api(tags = "订单" , description = "订单") +public class AppOrderController extends BaseController +{ + @Autowired + private IAppOrderService appOrderService; + + /** + * 查询订单列表 + */ +// @RequiresPermissions("app:order:list") + @GetMapping("/list") + @ApiOperation(value = "查询订单", notes = "查询订单", httpMethod = "GET") + public TableDataInfo list(AppOrder appOrder) + { + startPage(); + List list = appOrderService.selectAppOrderList(appOrder); + return getDataTable(list); + } + + /** + * 导出订单列表 + */ + @Log(title = "订单", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, AppOrder appOrder) + { + List list = appOrderService.selectAppOrderList(appOrder); + ExcelUtil util = new ExcelUtil(AppOrderVo.class); + util.exportExcel(response, list, "订单数据"); + } + + /** + * 获取订单详细信息 + */ + @GetMapping(value = "/{id}") + @ApiOperation(value = "获取订单详细信息", notes = "获取订单详细信息", httpMethod = "GET") + public AjaxResult getInfo(@PathVariable("id") Long id) + { + return success(appOrderService.selectAppOrderById(id)); + } + + /** + * 新增订单 + */ + @ApiOperation(value = "新增订单", notes = "新增订单", httpMethod = "POST") + @Log(title = "订单", businessType = BusinessType.INSERT) + @PostMapping("/add") + public AjaxResult add(@RequestBody AppOrder appOrder) + { + return toAjax(appOrderService.insertAppOrder(appOrder)); + } + + /** + * 修改订单 + */ + @ApiOperation(value = "修改订单", notes = "修改订单", httpMethod = "PUT") + @Log(title = "订单", businessType = BusinessType.UPDATE) + @PutMapping("/edit") + public AjaxResult edit(@RequestBody AppOrder appOrder) + { + return toAjax(appOrderService.updateAppOrder(appOrder)); + } + + /** + * 删除订单 + */ + @Log(title = "订单", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public AjaxResult remove(@PathVariable Long[] ids) + + { + return toAjax(appOrderService.deleteAppOrderByIds(ids)); + } + + /** + * 统计订单总数 + * @return + */ + @GetMapping("/abcd") + public AjaxResult abcd(){ + return success(appOrderService.abcd()); + } +} diff --git a/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/controller/AppVipController.java b/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/controller/AppVipController.java new file mode 100644 index 0000000..ebeb1c8 --- /dev/null +++ b/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/controller/AppVipController.java @@ -0,0 +1,114 @@ +package com.ruoyi.app.controller; + +import java.util.List; +import java.io.IOException; +import javax.servlet.http.HttpServletResponse; + +import com.ruoyi.common.core.domain.R; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import com.ruoyi.common.log.annotation.Log; +import com.ruoyi.common.log.enums.BusinessType; +import com.ruoyi.common.security.annotation.RequiresPermissions; +import com.ruoyi.app.domain.AppVip; +import com.ruoyi.app.service.IAppVipService; +import com.ruoyi.common.core.web.controller.BaseController; +import com.ruoyi.common.core.web.domain.AjaxResult; +import com.ruoyi.common.core.utils.poi.ExcelUtil; +import com.ruoyi.common.core.web.page.TableDataInfo; + +/** + * 会员信息Controller + * + * @author wyh + * @date 2024-05-15 + */ +@RestController +@RequestMapping("/vip") +@Api(tags = "会员信息" , description = "会员信息") +public class AppVipController extends BaseController +{ + @Autowired + private IAppVipService appVipService; + + /** + * 查询会员信息列表 + */ + @RequiresPermissions("app:vip:list") + @GetMapping("/list") + @ApiOperation(value = "查询会员信息", notes = "查询会员信息", httpMethod = "GET") + public TableDataInfo list(AppVip appVip) + { + startPage(); + List list = appVipService.selectAppVipList(appVip); + return getDataTable(list); + } + + /** + * 导出会员信息列表 + */ + @RequiresPermissions("app:vip:export") + @Log(title = "会员信息", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, AppVip appVip) + { + List list = appVipService.selectAppVipList(appVip); + ExcelUtil util = new ExcelUtil(AppVip.class); + util.exportExcel(response, list, "会员信息数据"); + } + + /** + * 获取会员信息详细信息 + */ + @RequiresPermissions("app:vip:query") + @GetMapping(value = "/{id}") + @ApiOperation(value = "获取会员信息详细信息", notes = "获取会员信息详细信息", httpMethod = "GET") + public AjaxResult getInfo(@PathVariable("id") Long id) + { + return success(appVipService.selectAppVipById(id)); + } + + /** + * 新增会员信息 + */ + @RequiresPermissions("app:vip:add") + @ApiOperation(value = "新增会员信息", notes = "新增会员信息", httpMethod = "POST") + @Log(title = "会员信息", businessType = BusinessType.INSERT) + @PostMapping("/add") + public AjaxResult add(@RequestBody AppVip appVip) + { + return toAjax(appVipService.insertAppVip(appVip)); + } + + /** + * 修改会员信息 + */ + @RequiresPermissions("app:vip:edit") + @ApiOperation(value = "修改会员信息", notes = "修改会员信息", httpMethod = "PUT") + @Log(title = "会员信息", businessType = BusinessType.UPDATE) + @PutMapping("/edit") + public AjaxResult edit(@RequestBody AppVip appVip) + { + return toAjax(appVipService.updateAppVip(appVip)); + } + + /** + * 删除会员信息 + */ + @RequiresPermissions("app:vip:remove") + @Log(title = "会员信息", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public AjaxResult remove(@PathVariable Long[] ids) + { + return toAjax(appVipService.deleteAppVipByIds(ids)); + } +} diff --git a/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/controller/PayController.java b/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/controller/PayController.java index e16ea40..46ad350 100644 --- a/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/controller/PayController.java +++ b/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/controller/PayController.java @@ -341,26 +341,45 @@ public class PayController extends BaseController } //乱码解决,这段代码在出现乱码时使用。 //valueStr = new String(valueStr.getBytes("ISO-8859-1"), "utf-8"); - params.put (name,valueStr); + System.out.println(name); + params.put (name,valueStr); } - //调用SDK验证签名 - //公钥验签示例代码 - boolean signVerified = AlipaySignature.rsaCheckV1(params, ALIPAY_PUBLIC_KEY, "UTF-8","RSA2") ; //公钥证书验签示例代码 - // boolean flag = AlipaySignature.rsaCertCheckV1(params,alipayPublicCertPath,"UTF-8","RSA2"); - - if (signVerified){ - // TODO 验签成功后 - //按照支付结果异步通知中的描述,对支付结果中的业务内容进行1\2\3\4二次校验,校验成功后在response中返回success - } else { - // TODO 验签失败则记录异常日志,并在response中返回fail. - } + boolean signVerified = AlipaySignature.rsaCertCheckV1(params,"/Users/wyh/Documents/code/gan/gan-modules/ruoyi-gan/src/main/resources/alipayCertPublicKey_RSA2.crt","UTF-8","RSA2"); PrintWriter out; try { out = response.getWriter(); - out.println("success"); + if (signVerified){ + // TODO 验签成功后 + String outTradeNo = params.get("out_trade_no"); + System.out.println(outTradeNo); + AppOrder appOrder = appOrderMapper.selectOneByOutTradeNo(outTradeNo); + AppOrder entity = new AppOrder(); + entity.setId(appOrder.getId()); + entity.setTradeNo(params.get("trade_no")); + entity.setPayStatus(2); + entity.setPayTime(new Date()); + appOrderMapper.updateAppOrder(entity); + + AppOrderPay miniOrderWechatPay = new AppOrderPay(); + miniOrderWechatPay.setAppid(params.get("app_id")); + miniOrderWechatPay.setOuttradeno(params.get("out_trade_no")); + miniOrderWechatPay.setResultcode(params.get("trade_status")); + miniOrderWechatPay.setTimeend(params.get("gmt_payment")); + miniOrderWechatPay.setTotalfee(params.get("total_amount")); + miniOrderWechatPay.setTransactionid(params.get("trade_no")); + appOrderPayMapper.insertAppOrderPay(miniOrderWechatPay); + //修改用户信息 +// updateUser(appOrder); + out.println("success"); + } else { + // TODO 验签失败则记录异常日志,并在response中返回fail. + out.println("fail"); + } } catch (Exception e) { + log.info("异常订单:" + params.toString()); + log.info("========>PrintWriter fail"); } /*StringBuilder sb = new StringBuilder(); InputStream in; diff --git a/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/domain/AppInform.java b/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/domain/AppInform.java new file mode 100644 index 0000000..ea60d6c --- /dev/null +++ b/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/domain/AppInform.java @@ -0,0 +1,54 @@ +package com.ruoyi.app.domain; + +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import com.ruoyi.common.core.annotation.Excel; +import com.ruoyi.common.core.web.domain.BaseEntity; + +/** + * 举报对象 app_inform + * + * @author wyh + * @date 2024-05-15 + */ +public class AppInform extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** id */ + private Long id; + + /** 举报内容 */ + @Excel(name = "举报内容") + private String content; + + public void setId(Long id) + { + this.id = id; + } + + public Long getId() + { + return id; + } + public void setContent(String content) + { + this.content = content; + } + + public String getContent() + { + return content; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("id", getId()) + .append("content", getContent()) + .append("createTime", getCreateTime()) + .append("updateTime", getUpdateTime()) + .append("remark", getRemark()) + .toString(); + } +} diff --git a/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/domain/AppOrder.java b/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/domain/AppOrder.java index 68fea04..9d00256 100644 --- a/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/domain/AppOrder.java +++ b/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/domain/AppOrder.java @@ -2,9 +2,8 @@ package com.ruoyi.app.domain; import java.util.Date; import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.annotation.JsonIgnore; import lombok.Data; -import org.apache.commons.lang3.builder.ToStringBuilder; -import org.apache.commons.lang3.builder.ToStringStyle; import com.ruoyi.common.core.annotation.Excel; import com.ruoyi.common.core.web.domain.BaseEntity; @@ -36,11 +35,11 @@ public class AppOrder extends BaseEntity /** 支付状态: 1待付款 2:已付款 */ @Excel(name = "支付状态: 1待付款 2:已付款") - private int payStatus; + private Integer payStatus; /** 支付类型: 1微信2支付宝3兑换码 */ @Excel(name = "支付类型: 1微信2支付宝3兑换码") - private int paySoure; + private Integer paySoure; /** 微信订单号 */ @Excel(name = "微信订单号") @@ -55,109 +54,14 @@ public class AppOrder extends BaseEntity private String mchId; @Excel(name = "会员等级,1-7天,2-一个月,3-一年") - private int level; + private Integer level; /** 支付时间 */ - @JsonFormat(pattern = "yyyy-MM-dd") - @Excel(name = "支付时间", width = 30, dateFormat = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @Excel(name = "支付时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") private Date payTime; - public void setId(Long id) - { - this.id = id; - } - - public Long getId() - { - return id; - } - public void setOutTradeNo(String outTradeNo) - { - this.outTradeNo = outTradeNo; - } - - public String getOutTradeNo() - { - return outTradeNo; - } - public void setAppId(String appId) - { - this.appId = appId; - } - - public String getAppId() - { - return appId; - } - public void setUserId(Long userId) - { - this.userId = userId; - } - - public Long getUserId() - { - return userId; - } - public void setPayStatus(int payStatus) - { - this.payStatus = payStatus; - } - - public int getPayStatus() - { - return payStatus; - } - public void setPaySoure(int paySoure) - { - this.paySoure = paySoure; - } - - public int getPaySoure() - { - return paySoure; - } - public void setTradeNo(String tradeNo) - { - this.tradeNo = tradeNo; - } - - public String getTradeNo() - { - return tradeNo; - } - public void setMchId(String mchId) - { - this.mchId = mchId; - } - - public String getMchId() - { - return mchId; - } - public void setPayTime(Date payTime) - { - this.payTime = payTime; - } - - public Date getPayTime() - { - return payTime; - } - - @Override - public String toString() { - return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) - .append("id", getId()) - .append("outTradeNo", getOutTradeNo()) - .append("appId", getAppId()) - .append("userId", getUserId()) - .append("payStatus", getPayStatus()) - .append("paySoure", getPaySoure()) - .append("tradeNo", getTradeNo()) - .append("price", getPrice()) - .append("mchId", getMchId()) - .append("payTime", getPayTime()) - .append("createTime", getCreateTime()) - .toString(); - } + /** 支付时间 */ + @JsonIgnore + private String payTimeStr; } diff --git a/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/domain/AppUserDynamic.java b/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/domain/AppUserDynamic.java index c662294..96debf2 100644 --- a/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/domain/AppUserDynamic.java +++ b/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/domain/AppUserDynamic.java @@ -64,6 +64,12 @@ public class AppUserDynamic extends BaseEntity @Excel(name = "是否收藏0是1否") private int isCollect; + private Integer provinceId; + + private Integer cityId; + + private Integer townId; + // 动态ids private List ids; diff --git a/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/domain/AppVip.java b/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/domain/AppVip.java new file mode 100644 index 0000000..f67a627 --- /dev/null +++ b/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/domain/AppVip.java @@ -0,0 +1,68 @@ +package com.ruoyi.app.domain; + +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import com.ruoyi.common.core.annotation.Excel; +import com.ruoyi.common.core.web.domain.BaseEntity; + +/** + * 会员信息对象 app_vip + * + * @author wyh + * @date 2024-05-15 + */ +public class AppVip extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** id */ + private Long id; + + /** 会员级别 */ + @Excel(name = "会员级别") + private Long level; + + /** 会员金额 */ + @Excel(name = "会员金额") + private Long price; + + public void setId(Long id) + { + this.id = id; + } + + public Long getId() + { + return id; + } + public void setLevel(Long level) + { + this.level = level; + } + + public Long getLevel() + { + return level; + } + public void setPrice(Long price) + { + this.price = price; + } + + public Long getPrice() + { + return price; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("id", getId()) + .append("createTime", getCreateTime()) + .append("updateTime", getUpdateTime()) + .append("remark", getRemark()) + .append("level", getLevel()) + .append("price", getPrice()) + .toString(); + } +} diff --git a/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/domain/dto/PayConfig.java b/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/domain/dto/PayConfig.java index f5ca9c8..349df08 100644 --- a/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/domain/dto/PayConfig.java +++ b/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/domain/dto/PayConfig.java @@ -18,7 +18,7 @@ public class PayConfig { //商户账户 public static String MCH_ID = "1646646755"; //异步回调地址 - public static String wechat_notify_url = "127.0.0.1"; + public static String wechat_notify_url = "http://139.224.213.131:7008/pay/wechatNotify"; //商品描述 public static String body = "会员充值"; diff --git a/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/domain/vo/AppOrderVo.java b/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/domain/vo/AppOrderVo.java new file mode 100644 index 0000000..7c9eb81 --- /dev/null +++ b/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/domain/vo/AppOrderVo.java @@ -0,0 +1,11 @@ +package com.ruoyi.app.domain.vo; + +import com.ruoyi.app.domain.AppOrder; +import lombok.Data; + + +@Data +public class AppOrderVo extends AppOrder { + + private String countPrice; +} \ No newline at end of file diff --git a/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/mapper/AppInformMapper.java b/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/mapper/AppInformMapper.java new file mode 100644 index 0000000..d24598b --- /dev/null +++ b/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/mapper/AppInformMapper.java @@ -0,0 +1,61 @@ +package com.ruoyi.app.mapper; + +import java.util.List; +import com.ruoyi.app.domain.AppInform; + +/** + * 举报Mapper接口 + * + * @author wyh + * @date 2024-05-15 + */ +public interface AppInformMapper +{ + /** + * 查询举报 + * + * @param id 举报主键 + * @return 举报 + */ + public AppInform selectAppInformById(Long id); + + /** + * 查询举报列表 + * + * @param appInform 举报 + * @return 举报集合 + */ + public List selectAppInformList(AppInform appInform); + + /** + * 新增举报 + * + * @param appInform 举报 + * @return 结果 + */ + public int insertAppInform(AppInform appInform); + + /** + * 修改举报 + * + * @param appInform 举报 + * @return 结果 + */ + public int updateAppInform(AppInform appInform); + + /** + * 删除举报 + * + * @param id 举报主键 + * @return 结果 + */ + public int deleteAppInformById(Long id); + + /** + * 批量删除举报 + * + * @param ids 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteAppInformByIds(Long[] ids); +} diff --git a/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/mapper/AppOrderMapper.java b/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/mapper/AppOrderMapper.java index 74f6c69..0ecc096 100644 --- a/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/mapper/AppOrderMapper.java +++ b/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/mapper/AppOrderMapper.java @@ -2,6 +2,9 @@ package com.ruoyi.app.mapper; import java.util.List; import com.ruoyi.app.domain.AppOrder; +import com.ruoyi.app.domain.vo.AppOrderVo; +import com.ruoyi.common.core.web.domain.AjaxResult; +import org.apache.ibatis.annotations.Param; /** * 订单Mapper接口 @@ -18,7 +21,7 @@ public interface AppOrderMapper * @return 订单 */ public AppOrder selectAppOrderById(Long id); - public AppOrder selectOneByOutTradeNo(String tradeNo); + public AppOrder selectOneByOutTradeNo(@Param("tradeNo") String tradeNo); /** * 查询订单列表 @@ -59,4 +62,6 @@ public interface AppOrderMapper * @return 结果 */ public int deleteAppOrderByIds(Long[] ids); + + public AppOrderVo abcd(); } diff --git a/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/mapper/AppVipMapper.java b/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/mapper/AppVipMapper.java new file mode 100644 index 0000000..eea385f --- /dev/null +++ b/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/mapper/AppVipMapper.java @@ -0,0 +1,61 @@ +package com.ruoyi.app.mapper; + +import java.util.List; +import com.ruoyi.app.domain.AppVip; + +/** + * 会员信息Mapper接口 + * + * @author wyh + * @date 2024-05-15 + */ +public interface AppVipMapper +{ + /** + * 查询会员信息 + * + * @param id 会员信息主键 + * @return 会员信息 + */ + public AppVip selectAppVipById(Long id); + + /** + * 查询会员信息列表 + * + * @param appVip 会员信息 + * @return 会员信息集合 + */ + public List selectAppVipList(AppVip appVip); + + /** + * 新增会员信息 + * + * @param appVip 会员信息 + * @return 结果 + */ + public int insertAppVip(AppVip appVip); + + /** + * 修改会员信息 + * + * @param appVip 会员信息 + * @return 结果 + */ + public int updateAppVip(AppVip appVip); + + /** + * 删除会员信息 + * + * @param id 会员信息主键 + * @return 结果 + */ + public int deleteAppVipById(Long id); + + /** + * 批量删除会员信息 + * + * @param ids 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteAppVipByIds(Long[] ids); +} diff --git a/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/service/AlipayService.java b/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/service/AlipayService.java index b4a7bbf..07f35ef 100644 --- a/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/service/AlipayService.java +++ b/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/service/AlipayService.java @@ -41,7 +41,7 @@ public class AlipayService { // 签名类型 private static final String SIGN_TYPE = "RSA2"; - private static final String NOTIFY_URL = "http://139.224.213.131:7008/pay/test"; + private static final String NOTIFY_URL = "http://139.224.213.131:7008/pay/aliPayCallback"; private static final String SUBJECT = "订单充值"; @@ -143,7 +143,7 @@ public class AlipayService { request.setNotifyUrl(NOTIFY_URL); JSONObject jsonObject = new JSONObject(); jsonObject.put("out_trade_no" , orderNo); - jsonObject.put("total_amount",price); + jsonObject.put("total_amount","0.01"); jsonObject.put("subject","订单充值"); request.setBizContent(jsonObject.toString()); // 3. 发起请求并处理响应 diff --git a/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/service/IAppInformService.java b/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/service/IAppInformService.java new file mode 100644 index 0000000..4c91c4f --- /dev/null +++ b/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/service/IAppInformService.java @@ -0,0 +1,61 @@ +package com.ruoyi.app.service; + +import java.util.List; +import com.ruoyi.app.domain.AppInform; + +/** + * 举报Service接口 + * + * @author wyh + * @date 2024-05-15 + */ +public interface IAppInformService +{ + /** + * 查询举报 + * + * @param id 举报主键 + * @return 举报 + */ + public AppInform selectAppInformById(Long id); + + /** + * 查询举报列表 + * + * @param appInform 举报 + * @return 举报集合 + */ + public List selectAppInformList(AppInform appInform); + + /** + * 新增举报 + * + * @param appInform 举报 + * @return 结果 + */ + public int insertAppInform(AppInform appInform); + + /** + * 修改举报 + * + * @param appInform 举报 + * @return 结果 + */ + public int updateAppInform(AppInform appInform); + + /** + * 批量删除举报 + * + * @param ids 需要删除的举报主键集合 + * @return 结果 + */ + public int deleteAppInformByIds(Long[] ids); + + /** + * 删除举报信息 + * + * @param id 举报主键 + * @return 结果 + */ + public int deleteAppInformById(Long id); +} diff --git a/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/service/IAppOrderService.java b/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/service/IAppOrderService.java new file mode 100644 index 0000000..af05bd1 --- /dev/null +++ b/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/service/IAppOrderService.java @@ -0,0 +1,65 @@ +package com.ruoyi.app.service; + +import java.util.List; +import com.ruoyi.app.domain.AppOrder; +import com.ruoyi.app.domain.vo.AppOrderVo; +import com.ruoyi.common.core.web.domain.AjaxResult; + +/** + * 订单Service接口 + * + * @author wyh + * @date 2024-05-15 + */ +public interface IAppOrderService +{ + /** + * 查询订单 + * + * @param id 订单主键 + * @return 订单 + */ + public AppOrder selectAppOrderById(Long id); + + /** + * 查询订单列表 + * + * @param appOrder 订单 + * @return 订单集合 + */ + public List selectAppOrderList(AppOrder appOrder); + + /** + * 新增订单 + * + * @param appOrder 订单 + * @return 结果 + */ + public int insertAppOrder(AppOrder appOrder); + + /** + * 修改订单 + * + * @param appOrder 订单 + * @return 结果 + */ + public int updateAppOrder(AppOrder appOrder); + + /** + * 批量删除订单 + * + * @param ids 需要删除的订单主键集合 + * @return 结果 + */ + public int deleteAppOrderByIds(Long[] ids); + + /** + * 删除订单信息 + * + * @param id 订单主键 + * @return 结果 + */ + public int deleteAppOrderById(Long id); + + AppOrderVo abcd(); +} diff --git a/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/service/IAppVipService.java b/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/service/IAppVipService.java new file mode 100644 index 0000000..c9befb3 --- /dev/null +++ b/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/service/IAppVipService.java @@ -0,0 +1,61 @@ +package com.ruoyi.app.service; + +import java.util.List; +import com.ruoyi.app.domain.AppVip; + +/** + * 会员信息Service接口 + * + * @author wyh + * @date 2024-05-15 + */ +public interface IAppVipService +{ + /** + * 查询会员信息 + * + * @param id 会员信息主键 + * @return 会员信息 + */ + public AppVip selectAppVipById(Long id); + + /** + * 查询会员信息列表 + * + * @param appVip 会员信息 + * @return 会员信息集合 + */ + public List selectAppVipList(AppVip appVip); + + /** + * 新增会员信息 + * + * @param appVip 会员信息 + * @return 结果 + */ + public int insertAppVip(AppVip appVip); + + /** + * 修改会员信息 + * + * @param appVip 会员信息 + * @return 结果 + */ + public int updateAppVip(AppVip appVip); + + /** + * 批量删除会员信息 + * + * @param ids 需要删除的会员信息主键集合 + * @return 结果 + */ + public int deleteAppVipByIds(Long[] ids); + + /** + * 删除会员信息信息 + * + * @param id 会员信息主键 + * @return 结果 + */ + public int deleteAppVipById(Long id); +} diff --git a/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/service/impl/AppInformServiceImpl.java b/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/service/impl/AppInformServiceImpl.java new file mode 100644 index 0000000..55cf657 --- /dev/null +++ b/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/service/impl/AppInformServiceImpl.java @@ -0,0 +1,96 @@ +package com.ruoyi.app.service.impl; + +import java.util.List; +import com.ruoyi.common.core.utils.DateUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.ruoyi.app.mapper.AppInformMapper; +import com.ruoyi.app.domain.AppInform; +import com.ruoyi.app.service.IAppInformService; + +/** + * 举报Service业务层处理 + * + * @author wyh + * @date 2024-05-15 + */ +@Service +public class AppInformServiceImpl implements IAppInformService +{ + @Autowired + private AppInformMapper appInformMapper; + + /** + * 查询举报 + * + * @param id 举报主键 + * @return 举报 + */ + @Override + public AppInform selectAppInformById(Long id) + { + return appInformMapper.selectAppInformById(id); + } + + /** + * 查询举报列表 + * + * @param appInform 举报 + * @return 举报 + */ + @Override + public List selectAppInformList(AppInform appInform) + { + return appInformMapper.selectAppInformList(appInform); + } + + /** + * 新增举报 + * + * @param appInform 举报 + * @return 结果 + */ + @Override + public int insertAppInform(AppInform appInform) + { + appInform.setCreateTime(DateUtils.getNowDate()); + return appInformMapper.insertAppInform(appInform); + } + + /** + * 修改举报 + * + * @param appInform 举报 + * @return 结果 + */ + @Override + public int updateAppInform(AppInform appInform) + { + appInform.setUpdateTime(DateUtils.getNowDate()); + return appInformMapper.updateAppInform(appInform); + } + + /** + * 批量删除举报 + * + * @param ids 需要删除的举报主键 + * @return 结果 + */ + @Override + public int deleteAppInformByIds(Long[] ids) + { + return appInformMapper.deleteAppInformByIds(ids); + } + + /** + * 删除举报信息 + * + * @param id 举报主键 + * @return 结果 + */ + @Override + public int deleteAppInformById(Long id) + { + return appInformMapper.deleteAppInformById(id); + } +} diff --git a/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/service/impl/AppOrderServiceImpl.java b/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/service/impl/AppOrderServiceImpl.java new file mode 100644 index 0000000..2db26ea --- /dev/null +++ b/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/service/impl/AppOrderServiceImpl.java @@ -0,0 +1,121 @@ +package com.ruoyi.app.service.impl; + +import java.text.SimpleDateFormat; +import java.util.List; +import java.util.stream.Collectors; + +import com.ruoyi.app.domain.vo.AppOrderVo; +import com.ruoyi.common.core.utils.DateUtils; +import com.ruoyi.common.core.utils.bean.BeanUtils; +import com.ruoyi.common.core.web.domain.AjaxResult; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.ruoyi.app.mapper.AppOrderMapper; +import com.ruoyi.app.domain.AppOrder; +import com.ruoyi.app.service.IAppOrderService; + +/** + * 订单Service业务层处理 + * + * @author wyh + * @date 2024-05-15 + */ +@Service +public class AppOrderServiceImpl implements IAppOrderService +{ + @Autowired + private AppOrderMapper appOrderMapper; + + /** + * 查询订单 + * + * @param id 订单主键 + * @return 订单 + */ + @Override + public AppOrder selectAppOrderById(Long id) + { + return appOrderMapper.selectAppOrderById(id); + } + + /** + * 查询订单列表 + * + * @param appOrder 订单 + * @return 订单 + */ + @Override + public List selectAppOrderList(AppOrder appOrder) + { + if (appOrder.getPayTime() != null) { + + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + appOrder.setPayTimeStr(sdf.format(appOrder.getPayTime())); + } + List appOrders = appOrderMapper.selectAppOrderList(appOrder); + double sum = appOrders.stream().mapToDouble(ppOrder -> Double.parseDouble(ppOrder.getPrice())).sum(); + List orderVo = appOrders.stream().map(order -> { + AppOrderVo appOrderVo = new AppOrderVo(); + BeanUtils.copyProperties(order, appOrderVo); + appOrderVo.setCountPrice(String.valueOf(sum)); + return appOrderVo; + }).collect(Collectors.toList()); + + return orderVo; + + } + + /** + * 新增订单 + * + * @param appOrder 订单 + * @return 结果 + */ + @Override + public int insertAppOrder(AppOrder appOrder) + { + appOrder.setCreateTime(DateUtils.getNowDate()); + return appOrderMapper.insertAppOrder(appOrder); + } + + /** + * 修改订单 + * + * @param appOrder 订单 + * @return 结果 + */ + @Override + public int updateAppOrder(AppOrder appOrder) + { + return appOrderMapper.updateAppOrder(appOrder); + } + + /** + * 批量删除订单 + * + * @param ids 需要删除的订单主键 + * @return 结果 + */ + @Override + public int deleteAppOrderByIds(Long[] ids) + { + return appOrderMapper.deleteAppOrderByIds(ids); + } + + /** + * 删除订单信息 + * + * @param id 订单主键 + * @return 结果 + */ + @Override + public int deleteAppOrderById(Long id) + { + return appOrderMapper.deleteAppOrderById(id); + } + + @Override + public AppOrderVo abcd() { + return appOrderMapper.abcd(); + } +} diff --git a/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/service/impl/AppProvinceServiceImpl.java b/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/service/impl/AppProvinceServiceImpl.java index df8c4b2..6ff0398 100644 --- a/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/service/impl/AppProvinceServiceImpl.java +++ b/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/service/impl/AppProvinceServiceImpl.java @@ -103,56 +103,108 @@ public class AppProvinceServiceImpl implements IAppProvinceService { @Override public List selectAppProvinceTree() { List appProvinces = appProvinceMapper.selectAppProvinceList(null); + List areaVos = new ArrayList<>(); - List collect = appProvinces.stream() - .map(appProvince -> { - AreaVo areaVo = new AreaVo(); - areaVo.setId(appProvince.getId()); - areaVo.setName(appProvince.getName()); - areaVo.setLevel(1); - areaVo.setIsLeaf(false); - - List appCities = appCityMapper.selectAppCityListByProvinceId(appProvince.getId()); - if (appCities == null || appCities.isEmpty()) { - return areaVo; + for (AppProvince appProvince : appProvinces) { + AreaVo areaVo = new AreaVo(); + areaVo.setId(appProvince.getId()); + areaVo.setName(appProvince.getName()); + areaVo.setLevel(1); + areaVo.setIsLeaf(false); + List list = new ArrayList<>(); + List appCities = appCityMapper.selectAppCityListByProvinceId(appProvince.getId()); + boolean flag = true; + for (AppCity appCity : appCities) { + if (appCity.getName().equals(areaVo.getName())) { + List vos = new ArrayList<>(); + List appTowns = appTownMapper.getTownByCityId(appCity.getId()); + for (AppTown appTown : appTowns) { + AreaVo townChild = new AreaVo(); + townChild.setId(appTown.getId()); + townChild.setName(appTown.getName()); + townChild.setLevel(2); + townChild.setIsLeaf(true); + vos.add(townChild); } + flag = false; + areaVo.setChildren(vos); + continue; + } + flag = true; + AreaVo child = new AreaVo(); + child.setId(appCity.getId()); + child.setName(appCity.getName()); + child.setLevel(2); + child.setIsLeaf(false); + List vos = new ArrayList<>(); + List appTowns = appTownMapper.getTownByCityId(appCity.getId()); + for (AppTown appTown : appTowns) { + AreaVo townChild = new AreaVo(); + townChild.setId(appTown.getId()); + townChild.setName(appTown.getName()); + townChild.setLevel(3); + townChild.setIsLeaf(true); + vos.add(townChild); + } + child.setChildren(vos); + list.add(child); + } + if (flag){ + areaVo.setChildren(list); + } + areaVos.add(areaVo); + } + return areaVos; - List children = appCities.stream() - .map(appCity -> { - AreaVo child = new AreaVo(); - child.setId(appCity.getId()); - child.setName(appCity.getName()); - child.setLevel(2); - child.setIsLeaf(false); - - List appTowns = appTownMapper.getTownByCityId(appCity.getId()); - if (appTowns == null || appTowns.isEmpty()) { - return child; - } - - List townChildren = appTowns.stream() -// .filter(!appTown -> !appTown.getId().equals(appCity.getId())) // Filter out where child id is same as parent id - .map(appTown -> { - AreaVo townChild = new AreaVo(); - townChild.setId(appTown.getId()); - townChild.setName(appTown.getName()); - townChild.setLevel(3); - townChild.setIsLeaf(true); - return townChild; - }) - .collect(Collectors.toList()); - - child.setChildren(townChildren); - return child; - }) - .collect(Collectors.toList()); - - areaVo.setChildren(children); - return areaVo; - }) - .collect(Collectors.toList()); - - return collect; +// List collect = appProvinces.stream() +// .map(appProvince -> { +// AreaVo areaVo = new AreaVo(); +// areaVo.setId(appProvince.getId()); +// areaVo.setName(appProvince.getName()); +// areaVo.setLevel(1); +// areaVo.setIsLeaf(false); +// +// List appCities = appCityMapper.selectAppCityListByProvinceId(appProvince.getId()); +// if (appCities == null || appCities.isEmpty()) { +// return areaVo; +// } +// +// List children = appCities.stream() +// .map(appCity -> { +// AreaVo child = new AreaVo(); +// child.setId(appCity.getId()); +// child.setName(appCity.getName()); +// child.setLevel(2); +// child.setIsLeaf(false); +// +// List appTowns = appTownMapper.getTownByCityId(appCity.getId()); +// if (appTowns == null || appTowns.isEmpty()) { +// return child; +// } +// +// List townChildren = appTowns.stream() +//// .filter(!appTown -> !appTown.getId().equals(appCity.getId())) // Filter out where child id is same as parent id +// .map(appTown -> { +// AreaVo townChild = new AreaVo(); +// townChild.setId(appTown.getId()); +// townChild.setName(appTown.getName()); +// townChild.setLevel(3); +// townChild.setIsLeaf(true); +// return townChild; +// }) +// .collect(Collectors.toList()); +// +// child.setChildren(townChildren); +// return child; +// }) +// .collect(Collectors.toList()); +// +// areaVo.setChildren(children); +// return areaVo; +// }) +// .collect(Collectors.toList()); +// +// return collect; } } diff --git a/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/service/impl/AppVipServiceImpl.java b/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/service/impl/AppVipServiceImpl.java new file mode 100644 index 0000000..a9eef5b --- /dev/null +++ b/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/service/impl/AppVipServiceImpl.java @@ -0,0 +1,96 @@ +package com.ruoyi.app.service.impl; + +import java.util.List; +import com.ruoyi.common.core.utils.DateUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.ruoyi.app.mapper.AppVipMapper; +import com.ruoyi.app.domain.AppVip; +import com.ruoyi.app.service.IAppVipService; + +/** + * 会员信息Service业务层处理 + * + * @author wyh + * @date 2024-05-15 + */ +@Service +public class AppVipServiceImpl implements IAppVipService +{ + @Autowired + private AppVipMapper appVipMapper; + + /** + * 查询会员信息 + * + * @param id 会员信息主键 + * @return 会员信息 + */ + @Override + public AppVip selectAppVipById(Long id) + { + return appVipMapper.selectAppVipById(id); + } + + /** + * 查询会员信息列表 + * + * @param appVip 会员信息 + * @return 会员信息 + */ + @Override + public List selectAppVipList(AppVip appVip) + { + return appVipMapper.selectAppVipList(appVip); + } + + /** + * 新增会员信息 + * + * @param appVip 会员信息 + * @return 结果 + */ + @Override + public int insertAppVip(AppVip appVip) + { + appVip.setCreateTime(DateUtils.getNowDate()); + return appVipMapper.insertAppVip(appVip); + } + + /** + * 修改会员信息 + * + * @param appVip 会员信息 + * @return 结果 + */ + @Override + public int updateAppVip(AppVip appVip) + { + appVip.setUpdateTime(DateUtils.getNowDate()); + return appVipMapper.updateAppVip(appVip); + } + + /** + * 批量删除会员信息 + * + * @param ids 需要删除的会员信息主键 + * @return 结果 + */ + @Override + public int deleteAppVipByIds(Long[] ids) + { + return appVipMapper.deleteAppVipByIds(ids); + } + + /** + * 删除会员信息信息 + * + * @param id 会员信息主键 + * @return 结果 + */ + @Override + public int deleteAppVipById(Long id) + { + return appVipMapper.deleteAppVipById(id); + } +} diff --git a/gan-modules/ruoyi-gan/src/main/resources/mapper/app/AppInformMapper.xml b/gan-modules/ruoyi-gan/src/main/resources/mapper/app/AppInformMapper.xml new file mode 100644 index 0000000..6d566c9 --- /dev/null +++ b/gan-modules/ruoyi-gan/src/main/resources/mapper/app/AppInformMapper.xml @@ -0,0 +1,68 @@ + + + + + + + + + + + + + + select id, content, create_time, update_time, remark from app_inform + + + + + + + + insert into app_inform + + content, + create_time, + update_time, + remark, + + + #{content}, + #{createTime}, + #{updateTime}, + #{remark}, + + + + + update app_inform + + content = #{content}, + create_time = #{createTime}, + update_time = #{updateTime}, + remark = #{remark}, + + where id = #{id} + + + + delete from app_inform where id = #{id} + + + + delete from app_inform where id in + + #{id} + + + \ No newline at end of file diff --git a/gan-modules/ruoyi-gan/src/main/resources/mapper/app/AppOrderMapper.xml b/gan-modules/ruoyi-gan/src/main/resources/mapper/app/AppOrderMapper.xml index 3f642a3..9d542eb 100644 --- a/gan-modules/ruoyi-gan/src/main/resources/mapper/app/AppOrderMapper.xml +++ b/gan-modules/ruoyi-gan/src/main/resources/mapper/app/AppOrderMapper.xml @@ -25,7 +25,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - - where outTradeNo = #{tradeNo} + where out_trade_no = #{tradeNo} @@ -105,4 +106,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{id} + + \ No newline at end of file diff --git a/gan-modules/ruoyi-gan/src/main/resources/mapper/app/AppUserDynamicMapper.xml b/gan-modules/ruoyi-gan/src/main/resources/mapper/app/AppUserDynamicMapper.xml index a25543b..ac95962 100644 --- a/gan-modules/ruoyi-gan/src/main/resources/mapper/app/AppUserDynamicMapper.xml +++ b/gan-modules/ruoyi-gan/src/main/resources/mapper/app/AppUserDynamicMapper.xml @@ -21,7 +21,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - select id, user_id, content, video_url, topic_id, address, privacy_status, remark, create_time, update_time, create_by, updateBy,is_top from app_user_dynamic + select id, user_id, content, video_url, topic_id, address, privacy_status, remark, create_time, update_time, create_by, updateBy,is_top ,city_id , province_id , townId from app_user_dynamic + + + and level = #{level} + and price = #{price} + + + + + + + insert into app_vip + + id, + create_time, + update_time, + remark, + level, + price, + + + #{id}, + #{createTime}, + #{updateTime}, + #{remark}, + #{level}, + #{price}, + + + + + update app_vip + + create_time = #{createTime}, + update_time = #{updateTime}, + remark = #{remark}, + level = #{level}, + price = #{price}, + + where id = #{id} + + + + delete from app_vip where id = #{id} + + + + delete from app_vip where id in + + #{id} + + + \ No newline at end of file diff --git a/gan-ui/src/api/app/gener.js b/gan-ui/src/api/app/gener.js new file mode 100644 index 0000000..5f222d0 --- /dev/null +++ b/gan-ui/src/api/app/gener.js @@ -0,0 +1,11 @@ +import request from '@/utils/request' + + +export function generCode(num) { + return request({ + url: '/app/pay/generateCode/' , + method: 'get', + pararm: {num: num}, + responseType: 'blob', + }) +} diff --git a/gan-ui/src/api/app/inform.js b/gan-ui/src/api/app/inform.js new file mode 100644 index 0000000..3995a02 --- /dev/null +++ b/gan-ui/src/api/app/inform.js @@ -0,0 +1,44 @@ +import request from '@/utils/request' + +// 查询举报列表 +export function listInform(query) { + return request({ + url: '/app/inform/list', + method: 'get', + params: query + }) +} + +// 查询举报详细 +export function getInform(id) { + return request({ + url: '/app/inform/' + id, + method: 'get' + }) +} + +// 新增举报 +export function addInform(data) { + return request({ + url: '/app/inform', + method: 'post', + data: data + }) +} + +// 修改举报 +export function updateInform(data) { + return request({ + url: '/app/inform', + method: 'put', + data: data + }) +} + +// 删除举报 +export function delInform(id) { + return request({ + url: '/app/inform/' + id, + method: 'delete' + }) +} diff --git a/gan-ui/src/api/app/order.js b/gan-ui/src/api/app/order.js new file mode 100644 index 0000000..e06e8a9 --- /dev/null +++ b/gan-ui/src/api/app/order.js @@ -0,0 +1,52 @@ +import request from '@/utils/request' + + +export function abcd() { + return request({ + url: '/app/order/abcd', + method: 'get' + }) +} + +// 查询订单列表 +export function listOrder(query) { + return request({ + url: '/app/order/list', + method: 'get', + params: query + }) +} + +// 查询订单详细 +export function getOrder(id) { + return request({ + url: '/app/order/' + id, + method: 'get' + }) +} + +// 新增订单 +export function addOrder(data) { + return request({ + url: '/app/order', + method: 'post', + data: data + }) +} + +// 修改订单 +export function updateOrder(data) { + return request({ + url: '/app/order', + method: 'put', + data: data + }) +} + +// 删除订单 +export function delOrder(id) { + return request({ + url: '/app/order/' + id, + method: 'delete' + }) +} diff --git a/gan-ui/src/api/app/vip.js b/gan-ui/src/api/app/vip.js new file mode 100644 index 0000000..6340add --- /dev/null +++ b/gan-ui/src/api/app/vip.js @@ -0,0 +1,44 @@ +import request from '@/utils/request' + +// 查询会员信息列表 +export function listVip(query) { + return request({ + url: '/app/vip/list', + method: 'get', + params: query + }) +} + +// 查询会员信息详细 +export function getVip(id) { + return request({ + url: '/app/vip/' + id, + method: 'get' + }) +} + +// 新增会员信息 +export function addVip(data) { + return request({ + url: '/app/vip/add', + method: 'post', + data: data + }) +} + +// 修改会员信息 +export function updateVip(data) { + return request({ + url: '/app/vip', + method: 'put', + data: data + }) +} + +// 删除会员信息 +export function delVip(id) { + return request({ + url: '/app/vip/' + id, + method: 'delete' + }) +} diff --git a/gan-ui/src/views/app/dynamic/detail.vue b/gan-ui/src/views/app/dynamic/detail.vue index 9ab2ca8..0738c14 100644 --- a/gan-ui/src/views/app/dynamic/detail.vue +++ b/gan-ui/src/views/app/dynamic/detail.vue @@ -14,73 +14,73 @@ import {listDynamic, getDynamic, treeDynamic} from "@/api/app/dynamic"; -export default { - - data() { - return { - id: '', - // 遮罩层 - loading: true, - // 选中数组 - ids: [], - // 非单个禁用 - single: true, - // 非多个禁用 - multiple: true, - // 显示搜索条件 - showSearch: true, - // 总条数 - total: 0, - // App用户动态表格数据 - dynamicList: [], - // 弹出层标题 - title: "", - // 是否显示弹出层 - open: false, - - - created() { - this.getList(); - this.getDynamic(this.id); - }, - - mounted: function () { - this.id = this.$route().params.dynamicId; - }, - methods: { - - getList() { - this.loading = true; - listDynamic(this.queryParams).then(response => { - this.registerList = response.rows; - this.total = response.total; - this.loading = false; - }); - }, - handleDetail(row) { - const id = row.id || row.ids; - - this.$router.push({path: '/app/dynamic/detail'}); - this.queryParams.dynamicId = id; - - treeDynamic(this.queryParams).then(response => { - this.form = response.data; - this.open = true; - this.title = "App用户动态详情"; - - // Access the data here - console.log(this.form); // Or use the data in any way you need - }); - }, - getDynamic(id){ - getDynamic(id).then(response => { - console.log(response.data); - }) - } - - } - - } - } -} +// export default { +// +// data() { +// return { +// id: '', +// // 遮罩层 +// loading: true, +// // 选中数组 +// ids: [], +// // 非单个禁用 +// single: true, +// // 非多个禁用 +// multiple: true, +// // 显示搜索条件 +// showSearch: true, +// // 总条数 +// total: 0, +// // App用户动态表格数据 +// dynamicList: [], +// // 弹出层标题 +// title: "", +// // 是否显示弹出层 +// open: false, +// +// +// created() { +// this.getList(); +// this.getDynamic(this.id); +// }, +// +// mounted: function () { +// this.id = this.$route().params.dynamicId; +// }, +// methods: { +// +// getList() { +// this.loading = true; +// listDynamic(this.queryParams).then(response => { +// this.registerList = response.rows; +// this.total = response.total; +// this.loading = false; +// }); +// }, +// handleDetail(row) { +// const id = row.id || row.ids; +// +// this.$router.push({path: '/app/dynamic/detail'}); +// this.queryParams.dynamicId = id; +// +// treeDynamic(this.queryParams).then(response => { +// this.form = response.data; +// this.open = true; +// this.title = "App用户动态详情"; +// +// // Access the data here +// console.log(this.form); // Or use the data in any way you need +// }); +// }, +// getDynamic(id){ +// getDynamic(id).then(response => { +// console.log(response.data); +// }) +// } +// +// } +// +// } +// } +// } diff --git a/gan-ui/src/views/app/dynamic/index.vue b/gan-ui/src/views/app/dynamic/index.vue index 814f617..86b5685 100644 --- a/gan-ui/src/views/app/dynamic/index.vue +++ b/gan-ui/src/views/app/dynamic/index.vue @@ -162,7 +162,7 @@ diff --git a/gan-ui/src/views/app/order/index.vue b/gan-ui/src/views/app/order/index.vue new file mode 100644 index 0000000..e6e5a9a --- /dev/null +++ b/gan-ui/src/views/app/order/index.vue @@ -0,0 +1,366 @@ + + + + + diff --git a/gan-ui/src/views/app/vip/gener/index.vue b/gan-ui/src/views/app/vip/gener/index.vue new file mode 100644 index 0000000..c4a7e99 --- /dev/null +++ b/gan-ui/src/views/app/vip/gener/index.vue @@ -0,0 +1,33 @@ + + diff --git a/gan-ui/src/views/app/vip/index.vue b/gan-ui/src/views/app/vip/index.vue new file mode 100644 index 0000000..62c716a --- /dev/null +++ b/gan-ui/src/views/app/vip/index.vue @@ -0,0 +1,277 @@ + + + diff --git a/gan-ui/src/views/index.vue b/gan-ui/src/views/index.vue index 9ff4bfd..4acea8e 100644 --- a/gan-ui/src/views/index.vue +++ b/gan-ui/src/views/index.vue @@ -1,912 +1,3 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -