主管理员 4 months ago
parent
commit
8605c781ef
20 changed files with 838 additions and 27 deletions
  1. +1
    -1
      admin-pc/.env.development
  2. +1
    -1
      admin-pc/.env.production
  3. +2
    -0
      module-base/base-core/src/main/java/org/jeecg/config/shiro/ShiroConfig.java
  4. +65
    -0
      module-common/src/main/java/org/jeecg/api/controller/AppletCatController.java
  5. +26
    -2
      module-common/src/main/java/org/jeecg/api/controller/AppletIndexController.java
  6. +37
    -4
      module-common/src/main/java/org/jeecg/api/controller/AppletInfoController.java
  7. +26
    -2
      module-common/src/main/java/org/jeecg/api/controller/AppletOrderController.java
  8. +22
    -0
      module-common/src/main/java/org/jeecg/api/service/AppletCatService.java
  9. +7
    -1
      module-common/src/main/java/org/jeecg/api/service/AppletIndexService.java
  10. +12
    -0
      module-common/src/main/java/org/jeecg/api/service/AppletInfoService.java
  11. +9
    -0
      module-common/src/main/java/org/jeecg/api/service/AppletOrderService.java
  12. +127
    -0
      module-common/src/main/java/org/jeecg/api/service/impl/AppletCatServiceImpl.java
  13. +56
    -6
      module-common/src/main/java/org/jeecg/api/service/impl/AppletIndexServiceImpl.java
  14. +198
    -0
      module-common/src/main/java/org/jeecg/api/service/impl/AppletInfoServiceImpl.java
  15. +195
    -2
      module-common/src/main/java/org/jeecg/api/service/impl/AppletOrderServiceImpl.java
  16. +9
    -0
      module-common/src/main/java/org/jeecg/modules/commonAddOrder/entity/CommonAddOrder.java
  17. +30
    -0
      module-common/src/main/java/org/jeecg/modules/commonOrder/entity/CommonOrder.java
  18. +7
    -0
      module-common/src/main/java/org/jeecg/modules/commonShopClass/entity/CommonShopClass.java
  19. +1
    -1
      module-system/src/main/resources/application-dev.yml
  20. +7
    -7
      module-system/src/main/resources/pay_weixin.properties

+ 1
- 1
admin-pc/.env.development View File

@ -1,5 +1,5 @@
NODE_ENV=development
VUE_APP_API_BASE_URL=http://localhost:8001/building-admin/
VUE_APP_API_BASE_URL=http://localhost:8002/building-admin/
VUE_APP_CAS_BASE_URL=http://cas.example.org:8443/cas
VUE_APP_ONLINE_BASE_URL=http://fileview.jeecg.com/onlinePreview


+ 1
- 1
admin-pc/.env.production View File

@ -1,4 +1,4 @@
NODE_ENV=production
VUE_APP_API_BASE_URL=http://localhost:8001/novel-admin/
VUE_APP_API_BASE_URL=http://localhost:8002/building-admin/
VUE_APP_CAS_BASE_URL=http://localhost:8888/cas
VUE_APP_ONLINE_BASE_URL=http://fileview.jeecg.com/onlinePreview

+ 2
- 0
module-base/base-core/src/main/java/org/jeecg/config/shiro/ShiroConfig.java View File

@ -81,6 +81,8 @@ public class ShiroConfig {
filterChainDefinitionMap.put("/index/**", "anon");
filterChainDefinitionMap.put("/all_login/**", "anon");
filterChainDefinitionMap.put("/order/**", "anon");
filterChainDefinitionMap.put("/cat/**", "anon");


+ 65
- 0
module-common/src/main/java/org/jeecg/api/controller/AppletCatController.java View File

@ -0,0 +1,65 @@
package org.jeecg.api.controller;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.jeecg.api.bean.PageBean;
import org.jeecg.api.service.AppletCatService;
import org.jeecg.api.service.AppletIndexService;
import org.jeecg.common.api.vo.Result;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
@Api(tags="购物车相关接口")
@RestController
@RequestMapping("/cat")
@Slf4j
public class AppletCatController {
@Resource
private AppletCatService apiRiceService;
//获取购物车信息列表带分页
@ApiOperation(value="获取购物车信息列表带分页", notes="获取购物车信息列表带分页")
@GetMapping(value = "/getCartPageList")
public Result<?> getCartPageList(@RequestHeader("X-Access-Token") String token, PageBean pageBean){
return apiRiceService.getCartPageList(token,pageBean);
}
//加入购物车 传入token shopId num
@ApiOperation(value="加入购物车 传入token shopId num", notes="加入购物车 传入token shopId num")
@GetMapping(value = "/addCart")
public Result<?> addCart(@RequestHeader("X-Access-Token") String token, String shopId, Integer num){
return apiRiceService.addCart(token,shopId,num);
}
//删除购物车信息
@ApiOperation(value="删除购物车信息", notes="删除购物车信息")
@PostMapping(value = "/deleteCart")
public Result<?> deleteCart(@RequestHeader("X-Access-Token") String token,String ids){
return apiRiceService.deleteCart(token,ids);
}
//修改购物车信息数量
@ApiOperation(value="修改购物车信息数量", notes="修改购物车信息数量")
@PostMapping(value = "/updateCartNum")
public Result<?> updateCartNum(@RequestHeader("X-Access-Token") String token,String id,Integer num){
return apiRiceService.updateCartNum(token,id,num);
}
}

+ 26
- 2
module-common/src/main/java/org/jeecg/api/controller/AppletIndexController.java View File

@ -36,6 +36,15 @@ public class AppletIndexController {
return appletIndexService.getIcon();
}
//获取分类
@ApiOperation(value="获取分类", notes="获取分类")
@GetMapping("/getClassify")
public Result<?> getClassify(){
return appletIndexService.getClassify();
}
//获取建材商品信息列表
@ApiOperation(value="获取建材商品信息列表", notes="获取建材商品信息列表")
@ -67,11 +76,26 @@ public class AppletIndexController {
return appletIndexService.addOrder(token,commonAddOrder);
}
//取消快捷订单
@ApiOperation(value="取消快捷订单", notes="取消快捷订单")
@PostMapping("/cancelOrder")
public Result<?> cancelOrder(@RequestHeader("X-Access-Token") String token,String orderId){
return appletIndexService.cancelOrder(token,orderId);
}
//创建订单
@ApiOperation(value="创建订单", notes="创建订单")
@PostMapping("/createOrder")
public Result<?> createOrder(@RequestHeader("X-Access-Token") String token,Integer payType,String productId,String addressId){
return appletIndexService.createOrder(token,payType,productId,addressId);
public Result<?> createOrder(@RequestHeader("X-Access-Token") String token,Integer payType,String productId,String addressId,Integer orderNum){
return appletIndexService.createOrder(token,payType,productId,addressId,orderNum);
}


+ 37
- 4
module-common/src/main/java/org/jeecg/api/controller/AppletInfoController.java View File

@ -9,6 +9,7 @@ import org.jeecg.api.service.AppletInfoService;
import org.jeecg.common.api.vo.Result;
import org.jeecg.modules.commonAddress.entity.CommonAddress;
import org.jeecg.modules.commonHelp.entity.CommonHelp;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
@ -55,6 +56,20 @@ public class AppletInfoController {
return appletInfoService.saveOrUpdateAddress(token,commonAddress);
}
//修改默认地址
@ApiOperation(value="修改默认地址", notes="修改默认地址")
@PostMapping("/updateDefaultAddress")
public Result<?> updateDefaultAddress(@RequestHeader("X-Access-Token") String token,String id){
return appletInfoService.updateDefaultAddress(token,id);
}
@ApiOperation(value="删除地址", notes="删除地址")
@PostMapping("/deleteAddress")
public Result<?> deleteAddress(@RequestHeader("X-Access-Token") String token,String id){
@ -69,6 +84,16 @@ public class AppletInfoController {
}
//获取团队头部信息
@ApiOperation(value="获取团队头部信息", notes="获取团队头部信息")
@GetMapping("/getTeamHeader")
public Result<?> getTeamHeader(@RequestHeader("X-Access-Token") String token){
return appletInfoService.getTeamHeader(token);
}
//提现
@ApiOperation(value="提现", notes="提现")
@PostMapping("/openMoney")
@ -83,10 +108,18 @@ public class AppletInfoController {
return appletInfoService.getLogList(token,timeDate,pageBean);
}
@ApiOperation(value="创建二维码", notes="创建二维码")
@GetMapping("/createQrCode")
public Result<?> createQrCode(@RequestHeader("X-Access-Token") String token){
return appletInfoService.createQrCode(token);
// @ApiOperation(value="创建二维码", notes="创建二维码")
// @GetMapping("/createQrCode")
// public Result<?> createQrCode(@RequestHeader("X-Access-Token") String token){
// return appletInfoService.createQrCode(token);
// }
//获取个人邀请码
@ApiOperation(value="获取个人邀请码", notes="获取个人邀请码")
@GetMapping(value = "/createQrCode", produces = MediaType.IMAGE_PNG_VALUE)
public byte[] createQrCode(String token){
return appletInfoService.getInviteCode2(token);
}
@ApiOperation(value="添加帮助", notes="添加帮助")


+ 26
- 2
module-common/src/main/java/org/jeecg/api/controller/AppletOrderController.java View File

@ -24,9 +24,9 @@ public class AppletOrderController {
// 获取订单列表带分页
@ApiOperation(value="获取订单列表带分页", notes="获取订单列表带分页")
@GetMapping(value = "/getOrderPageBean")
public Result<?> getOrderPageBean(@RequestHeader("X-Access-Token") String token,Integer status, PageBean pageBean)
public Result<?> getOrderPageBean(@RequestHeader("X-Access-Token") String token,Integer state, PageBean pageBean)
{
return appletOrderService.getOrderPageBean(token,status,pageBean);
return appletOrderService.getOrderPageBean(token,state,pageBean);
}
@ApiOperation(value="获取订单详情", notes="获取订单详情")
@ -54,5 +54,29 @@ public class AppletOrderController {
}
//取消订单
@ApiOperation(value="取消订单", notes="取消订单")
@PostMapping(value = "/cancelOrder")
public Result<?> cancelOrder(@RequestHeader("X-Access-Token") String token,String orderId)
{
return appletOrderService.cancelOrder(token,orderId);
}
//支付回调
@PostMapping("/payNotify")
public Object payNotify(@RequestBody String requestBody){
return appletOrderService.payNotify(requestBody);
}
//商城-加入购物车之后一次下多个订单
@ApiOperation(value="商城-加入购物车之后一次下多个订单", notes="商城-加入购物车之后一次下多个订单")
@PostMapping("/createSumOrder")
public Result<?> createSumOrder(@RequestHeader("X-Access-Token") String token,String list,String addressId,Integer payType,String orderId){
return appletOrderService.createSumOrder(token,list,addressId,payType,orderId);
}
}

+ 22
- 0
module-common/src/main/java/org/jeecg/api/service/AppletCatService.java View File

@ -0,0 +1,22 @@
package org.jeecg.api.service;
import org.jeecg.api.bean.PageBean;
import org.jeecg.common.api.vo.Result;
public interface AppletCatService {
//获取购物车信息列表带分页
Result<?> getCartPageList(String token, PageBean pageBean);
//加入购物车
Result<?> addCart(String token, String shopId, Integer num);
//删除购物车信息
Result<?> deleteCart(String token,String ids);
//修改购物车信息数量
Result<?> updateCartNum(String token,String id,Integer num);
}

+ 7
- 1
module-common/src/main/java/org/jeecg/api/service/AppletIndexService.java View File

@ -17,6 +17,9 @@ public interface AppletIndexService {
Result<?> getIcon();
//获取分类
Result<?> getClassify();
//获取建材商品信息列表带分页搜索
Result<?> getProductList(String shopIconId,String shopClassId,PageBean pageBean);
@ -32,8 +35,11 @@ public interface AppletIndexService {
//快捷下单-拍照下单/语音下单
Result<?> addOrder(String token, CommonAddOrder commonAddOrder);
//取消快捷订单
Result<?> cancelOrder(String token,String orderId);
//创建订单
Result<?> createOrder(String token,Integer payType,String productId,String addressId);
Result<?> createOrder(String token,Integer payType,String productId,String addressId,Integer orderNum);
//立即支付


+ 12
- 0
module-common/src/main/java/org/jeecg/api/service/AppletInfoService.java View File

@ -29,6 +29,11 @@ public interface AppletInfoService {
Result<?> saveOrUpdateAddress(String token, CommonAddress commonAddress);
//修改默认地址
Result<?> updateDefaultAddress(String token,String id);
//删除地址信息
Result<?> deleteAddress(String token,String id);
@ -37,6 +42,10 @@ public interface AppletInfoService {
Result<?> getTeamList(String token, Integer state,PageBean pageBean);
//获取团队头部信息
Result<?> getTeamHeader(String token);
//提现
Result<?> openMoney (String token, BigDecimal money);
@ -49,6 +58,9 @@ public interface AppletInfoService {
Result<?> createQrCode(String token);
//获取个人邀请码
byte[] getInviteCode2(String token);
//新增帮助反馈信息
Result<?> addHelp(String token, CommonHelp commonHelp);


+ 9
- 0
module-common/src/main/java/org/jeecg/api/service/AppletOrderService.java View File

@ -17,4 +17,13 @@ public interface AppletOrderService {
//确认订单送达
Result<?> confirmOrder(String token,String orderId);
//取消订单
Result<?> cancelOrder(String token,String orderId);
//支付回调
Object payNotify(String requestBody);
//商城-加入购物车之后一次下多个订单
Result<?> createSumOrder(String token,String list,String addressId,Integer payType,String orderId);
}

+ 127
- 0
module-common/src/main/java/org/jeecg/api/service/impl/AppletCatServiceImpl.java View File

@ -0,0 +1,127 @@
package org.jeecg.api.service.impl;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.toolkit.IdWorker;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.commons.lang.StringUtils;
import org.jeecg.api.bean.PageBean;
import org.jeecg.api.service.AppletCatService;
import org.jeecg.common.api.vo.Result;
import org.jeecg.config.shiro.ShiroRealm;
import org.jeecg.modules.commonAddress.entity.CommonAddress;
import org.jeecg.modules.commonCat.entity.CommonCat;
import org.jeecg.modules.commonCat.service.ICommonCatService;
import org.jeecg.modules.commonOrder.entity.CommonOrder;
import org.jeecg.modules.commonShop.entity.CommonShop;
import org.jeecg.modules.commonShop.service.ICommonShopService;
import org.jeecg.modules.commonShop.service.impl.CommonShopServiceImpl;
import org.jeecg.modules.hanHaiMember.entity.HanHaiMember;
import org.jeecg.modules.hanHaiMember.service.IHanHaiMemberService;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@Service
public class AppletCatServiceImpl implements AppletCatService {
//权限验证
@Resource
private ShiroRealm shiroRealm;
@Resource
private IHanHaiMemberService hanHaiMemberService;
@Resource
private ICommonShopService commonShopService;
@Resource
private ICommonCatService commonCatService;
//获取购物车信息列表带分页
@Override
public Result<?> getCartPageList(String token, PageBean pageBean){
HanHaiMember hanHaiMember = shiroRealm.checkUserTokenIsEffectHanHaiOpenId(token);
Page<CommonCat> page = commonCatService
.lambdaQuery()
.eq(CommonCat::getUserId,hanHaiMember.getId())
.page(new Page<>(pageBean.getPageNo(), pageBean.getPageSize()));
//创建一个新的list集合
List<CommonCat> records = new ArrayList<>();
//循环得到信息
for (CommonCat commonCart : page.getRecords()) {
commonCart.setShop(commonShopService.getById(commonCart.getShopId()));
records.add(commonCart);
}
page.setRecords(records);
return Result.OK(page);
}
//加入购物车
@Override
public Result<?> addCart(String token, String shopId, Integer num){
HanHaiMember hanHaiMember = shiroRealm.checkUserTokenIsEffectHanHaiOpenId(token);
//根据商品标识查询商品信息
CommonShop commonShop = commonShopService.getById(shopId);
if (commonShop==null){
return Result.error("商品不存在");
}
//根据商品标识查询购物车是否存在该商品
CommonCat commonCart = commonCatService.lambdaQuery()
.eq(CommonCat::getUserId,hanHaiMember.getId())
.eq(CommonCat::getShopId,shopId)
.one();
//如果有则修改数量
if (commonCart!=null){
commonCart.setNum(commonCart.getNum()+num);
commonCatService.updateById(commonCart);
return Result.OK("修改成功");
}else{
CommonCat commonCat = new CommonCat();
commonCat.setTitle(commonShop.getName());
commonCat.setShopId(commonShop.getId());
commonCat.setImage(commonShop.getImage());
commonCat.setSku(commonShop.getMaterial());
commonCat.setPrice(commonShop.getPrice());
commonCat.setUserId(hanHaiMember.getId());
commonCat.setNum(num);
commonCat.setCreateTime(new Date());
commonCatService.save(commonCat);
return Result.OK("加入成功");
}
}
//删除购物车信息
@Override
public Result<?> deleteCart(String token,String ids){
HanHaiMember hanHaiMember = shiroRealm.checkUserTokenIsEffectHanHaiOpenId(token);
//删除多个购物车数据
String[] split = ids.split(",");
//如果没有,则直接删除
if (split.length==1){
commonCatService.removeById(split[0]);
return Result.OK("删除成功");
}
//如果有则循环删除
for (String id : split) {
commonCatService.removeById(id);
}
return Result.OK("删除成功");
}
//修改购物车信息数量
@Override
public Result<?> updateCartNum(String token,String id,Integer num){
HanHaiMember hanHaiMember = shiroRealm.checkUserTokenIsEffectHanHaiOpenId(token);
CommonCat commonCat = commonCatService.getById(id);
commonCat.setNum(num);
commonCatService.updateById(commonCat);
return Result.OK("修改成功");
}
}

+ 56
- 6
module-common/src/main/java/org/jeecg/api/service/impl/AppletIndexServiceImpl.java View File

@ -21,6 +21,8 @@ import org.jeecg.modules.commonOrder.entity.CommonOrder;
import org.jeecg.modules.commonOrder.service.ICommonOrderService;
import org.jeecg.modules.commonShop.entity.CommonShop;
import org.jeecg.modules.commonShop.service.ICommonShopService;
import org.jeecg.modules.commonShopClass.entity.CommonShopClass;
import org.jeecg.modules.commonShopClass.service.ICommonShopClassService;
import org.jeecg.modules.hanHaiMember.entity.HanHaiMember;
import org.jeecg.modules.hanHaiMember.service.IHanHaiMemberService;
import org.jeecg.modules.pay.MpWxPayService;
@ -30,6 +32,7 @@ import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@ -50,6 +53,8 @@ public class AppletIndexServiceImpl implements AppletIndexService {
@Resource
private ICommonShopService commonShopService;
@Resource
private ICommonShopClassService commonShopClassService;
@Resource
private ICommonAddOrderService commonAddOrderService;
@Resource
private ICommonAddressService commonAddressService;
@ -76,6 +81,21 @@ public class AppletIndexServiceImpl implements AppletIndexService {
return Result.OK("金刚区icon",list);
}
//获取分类
@Override
public Result<?> getClassify(){
List<CommonShopClass> list = commonShopClassService
.lambdaQuery()
.eq(CommonShopClass::getPid,0)
.list();
list.forEach(item->{
item.setChildren(commonShopClassService
.lambdaQuery()
.eq(CommonShopClass::getPid,item.getId())
.list());
});
return Result.OK("建材分类",list);
}
@ -91,7 +111,7 @@ public class AppletIndexServiceImpl implements AppletIndexService {
}else if(shopClassId!=null){
//根据classId查询商品信息
page = commonShopService.lambdaQuery()
.eq(CommonShop::getShopClass,shopClassId)
.like(CommonShop::getShopClass,shopClassId)
.page(page);
}else if(pageBean.getTitle()!=null){
//根据classId查询商品信息
@ -120,11 +140,29 @@ public class AppletIndexServiceImpl implements AppletIndexService {
HanHaiMember hanHaiMember = shiroRealm.checkUserTokenIsEffectHanHaiOpenId(token);
List<CommonAddOrder> list = commonAddOrderService.lambdaQuery()
.eq(CommonAddOrder::getUserId, hanHaiMember.getId())
.eq(CommonAddOrder::getStatus, "0")
.eq(CommonAddOrder::getIsPay, "Y")
.eq(CommonAddOrder::getStatus, "1")
.eq(CommonAddOrder::getIsPay, "N")
.orderByDesc(CommonAddOrder::getCreateTime)
.list();
return Result.OK("快捷订单查询成功",list);
//如果有数据返回数据循环赋值
List<CommonAddOrder> listNew = new ArrayList<>();
if (list.size()>0){
for (CommonAddOrder commonAddOrder : list) {
//获取商品标识
String[] shopIdSplit = commonAddOrder.getShopId().split(",");
//创建一个集合
List<CommonShop> list1 = new ArrayList<>();
for (String shopId : shopIdSplit) {
//获取商品信息
CommonShop commonShop = commonShopService.getById(shopId);
//加入集合
list1.add(commonShop);
}
commonAddOrder.setCommonShop(list1);
listNew.add(commonAddOrder);
}
}
return Result.OK("快捷订单查询成功",listNew);
}
@ -141,9 +179,21 @@ public class AppletIndexServiceImpl implements AppletIndexService {
return Result.OK("快捷下单成功");
}
//取消快捷订单
@Override
public Result<?> cancelOrder(String token,String orderId){
HanHaiMember hanHaiMember = shiroRealm.checkUserTokenIsEffectHanHaiOpenId(token);
CommonAddOrder commonAddOrder = commonAddOrderService.getById(orderId);
//存在则删除
if (commonAddOrder!=null){
commonAddOrderService.removeById(orderId);
}
return Result.OK("取消快捷订单成功");
}
//创建订单
@Override
public Result<?> createOrder(String token,Integer payType,String productId,String addressId){
public Result<?> createOrder(String token,Integer payType,String productId,String addressId,Integer orderNum){
HanHaiMember hanHaiMember = shiroRealm.checkUserTokenIsEffectHanHaiOpenId(token);
CommonShop commonShop = commonShopService.getById(productId);
if (commonShop==null){
@ -187,6 +237,7 @@ public class AppletIndexServiceImpl implements AppletIndexService {
commonOrder.setTwoMoney(commonShop.getTwoMoney());
commonOrderService.save(commonOrder);
return Result.OK("余额支付成功",commonOrder);
}else{
//微信支付
if (commonShop.getNum()==0){
@ -235,7 +286,6 @@ public class AppletIndexServiceImpl implements AppletIndexService {
return Result.OK("支付成功",appOrder);
}
return Result.OK("订单创建失败");
}


+ 198
- 0
module-common/src/main/java/org/jeecg/api/service/impl/AppletInfoServiceImpl.java View File

@ -35,9 +35,15 @@ import org.springframework.util.MultiValueMap;
import org.springframework.web.client.RestTemplate;
import javax.annotation.Resource;
import javax.imageio.ImageIO;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.*;
import java.math.BigDecimal;
import java.net.URL;
import java.nio.file.Files;
import java.util.*;
import java.util.List;
@Slf4j
@Service
@ -126,6 +132,33 @@ public class AppletInfoServiceImpl implements AppletInfoService {
}
//修改默认地址
@Override
public Result<?> updateDefaultAddress(String token,String id){
HanHaiMember hanHaiMember = shiroRealm.checkUserTokenIsEffectHanHaiOpenId(token);
//查到当前用户是否有默认地址给他修改成否
List<CommonAddress> commonAddressList = commonAddressService.lambdaQuery()
.eq(CommonAddress::getUserId, hanHaiMember.getId())
.eq(CommonAddress::getDefaultFlag, "1")
.list();
if(commonAddressList.size() > 0){
for (CommonAddress commonAddress : commonAddressList) {
commonAddress.setDefaultFlag("0");
commonAddressService.updateById(commonAddress);
}
}
//查询当前地址是否是默认地址
CommonAddress commonAddress = commonAddressService.getById(id);
if(commonAddress.getDefaultFlag().equals("0")){
commonAddress.setDefaultFlag("1");
commonAddressService.updateById(commonAddress);
}else if(commonAddress.getDefaultFlag().equals("1")){
commonAddress.setDefaultFlag("0");
commonAddressService.updateById(commonAddress);
}
return Result.OK("修改成功");
}
//删除地址信息
@Override
public Result<?> deleteAddress(String token,String id){
@ -182,11 +215,26 @@ public class AppletInfoServiceImpl implements AppletInfoService {
});
pageListFans.setRecords(fansPageBean);
return Result.OK(pageListFans);
}
//获取团队头部信息
@Override
public Result<?> getTeamHeader(String token){
HanHaiMember hanHaiMember = shiroRealm.checkUserTokenIsEffectHanHaiOpenId(token);
Map<String,Object> map = new HashMap();
map.put("money",hanHaiMember.getMoney());
map.put("role",0);
map.put("lj_money",100);//
map.put("lj_price",0);//总佣金
return Result.OK("团队头部信息查询成功",map);
}
//提现
@Override
public Result<?> openMoney (String token, BigDecimal money){
@ -350,6 +398,156 @@ public class AppletInfoServiceImpl implements AppletInfoService {
}
//获取推广二维码 2
@Override
public byte[] getInviteCode2(String token){
HanHaiMember member = shiroRealm.checkUserTokenIsEffectHanHaiOpenId(token);
// 获取环境配置
CommonConfig vsion = commonConfigService.lambdaQuery()
.eq(CommonConfig::getKeyName, "v_sion")
.one();
Integer vsionStr = Integer.parseInt(vsion.getKeyContent());
String trial = "release";
if(vsionStr == 0){
trial= "release";
}else if(vsionStr == 1){
trial= "trial";
}else{
trial= "develop";
}
// 获取必要的配置信息
CommonConfig xcxSharePage = commonConfigService.lambdaQuery()
.eq(CommonConfig::getKeyName, "xcxSharePage")
.one();
CommonConfig oneImage = commonConfigService.lambdaQuery()
.eq(CommonConfig::getKeyName, "codeImg")
.one();
CommonConfig qr_code = commonConfigService.lambdaQuery()
.eq(CommonConfig::getKeyName, "qr_code")
.one();
CommonConfig image_go_url = commonConfigService.lambdaQuery()
.eq(CommonConfig::getKeyName, "image_go_url")
.one();
String backgroundImageUrl = qr_code.getKeyContent();
// 尝试从缓存获取二维码
String cacheKey = "CodeImage::" + trial + member.getId();
WxQrCodeVo wxCodeVo = new WxQrCodeVo();
wxCodeVo.setName("陌美人珠宝欢迎您");
// 如果启用了Redis缓存可以取消下面注释
// String cachedQrCode = (String) redisUtil.get(cacheKey);
// if(cachedQrCode != null){
// String combinedImageUrl = this.generateAndCombineImagesFromUrl(cachedQrCode, backgroundImageUrl, "combined_image_code");
// wxCodeVo.setUrl(combinedImageUrl);
// return Result.OK(wxCodeVo);
// }
try {
// 准备微信API请求参数
String key = "shareId=" + member.getId();
Map<String, Object> param = new HashMap<>();
param.put("path", xcxSharePage.getKeyContent() + "?" + key);
param.put("scene", member.getId());
param.put("width", 150);
param.put("auto_color", false);
param.put("env_version", trial);
// Map<String, Object> line_color = new HashMap<>();
// line_color.put("r", 0);
// line_color.put("g", 0);
// line_color.put("b", 0);
// param.put("line_color", line_color);
param.put("is_hyaline", true);
// 获取微信小程序码
String accessToken = this.getAccessToken();
String url = "https://api.weixin.qq.com/wxa/getwxacode?access_token=" + accessToken;
// 请求微信API获取二维码图片数据
RestTemplate rest = new RestTemplate();
MultiValueMap<String, String> headers = new LinkedMultiValueMap<>();
org.springframework.http.HttpEntity requestEntity = new org.springframework.http.HttpEntity(JSON.toJSONString(param), headers);
ResponseEntity<byte[]> entity = rest.exchange(url, HttpMethod.POST, requestEntity, byte[].class, new Object[0]);
byte[] qrCodeBytes = entity.getBody();
// 直接将二维码图片转为MultipartFile避免写入临时文件
// MultipartFile qrCodeFile = createMultipartFile(qrCodeBytes, "qrcode.jpg");
// 上传二维码到阿里云并获取URL
// String qrCodeImageUrl = image_go_url.getKeyContent() + this.uploadAliYunOss(qrCodeFile);
// 合并图片并上传
// String combinedImageUrl = this.generateAndCombineImagesFromUrl2(qrCodeBytes, backgroundImageUrl);
// 设置返回数据
// 如果启用了Redis缓存可以取消下面注释
//redisUtil.set(cacheKey, qrCodeImageUrl, 3600); // 缓存一小时
return this.generateAndCombineImagesFromUrl2(qrCodeBytes, backgroundImageUrl);
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
public byte[] generateAndCombineImagesFromUrl2(byte[] qrCodeImageByte, String backgroundUrl) {
File file = null;
try {
// 从字节数组加载小程序码图像
BufferedImage qrCodeImage = ImageIO.read(new ByteArrayInputStream(qrCodeImageByte));
// 从URL加载背景图像
URL backgroundImageUrl = new URL(backgroundUrl);
BufferedImage backgroundImage = ImageIO.read(backgroundImageUrl);
// 创建一个新的BufferedImage来保存合并后的图像
Graphics2D g2d = backgroundImage.createGraphics();
int wh = backgroundImage.getWidth() / 3;
// 计算小程序码放置的位置这里以中心位置为例
int qrCodeX = (backgroundImage.getWidth() - wh) / 2;
int qrCodeY = (int) ((backgroundImage.getHeight() - wh) * 0.6);
// 绘制小程序码图像
g2d.drawImage(qrCodeImage, qrCodeX, qrCodeY, wh, wh, null);
// 释放Graphics2D资源
g2d.dispose();
// 将合并后的图像保存到临时文件
file = File.createTempFile("combined_", ".png");
ImageIO.write(backgroundImage, "png", file);
// 上传到阿里云OSS
// return this.uploadAliYunOss(Files.readAllBytes(file.toPath()), file.getName());
return Files.readAllBytes(file.toPath());
} catch (Exception e) {
log.error("生成合并图片失败", e);
throw new RuntimeException("生成合并图片失败", e);
} finally {
// 删除临时文件
if (file != null && file.exists()) {
file.delete();
}
}
}
/**
* 获取令牌
*


+ 195
- 2
module-common/src/main/java/org/jeecg/api/service/impl/AppletOrderServiceImpl.java View File

@ -1,17 +1,27 @@
package org.jeecg.api.service.impl;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.toolkit.IdWorker;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.github.binarywang.wxpay.bean.notify.WxPayOrderNotifyResult;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils;
import org.jeecg.api.bean.PageBean;
import org.jeecg.api.service.AppletOrderService;
import org.jeecg.common.api.vo.Result;
import org.jeecg.config.shiro.ShiroRealm;
import org.jeecg.modules.commonAddOrder.entity.CommonAddOrder;
import org.jeecg.modules.commonAddOrder.service.ICommonAddOrderService;
import org.jeecg.modules.commonAddress.entity.CommonAddress;
import org.jeecg.modules.commonAddress.service.ICommonAddressService;
import org.jeecg.modules.commonConfig.entity.CommonConfig;
import org.jeecg.modules.commonMoneyLog.entity.CommonMoneyLog;
import org.jeecg.modules.commonMoneyLog.service.ICommonMoneyLogService;
import org.jeecg.modules.commonOrder.entity.CommonOrder;
import org.jeecg.modules.commonOrder.service.ICommonOrderService;
import org.jeecg.modules.commonShop.entity.CommonShop;
import org.jeecg.modules.commonShop.service.ICommonShopService;
import org.jeecg.modules.hanHaiMember.entity.HanHaiMember;
import org.jeecg.modules.hanHaiMember.service.IHanHaiMemberService;
import org.jeecg.modules.pay.MpWxPayService;
@ -21,6 +31,7 @@ import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
@Slf4j
@Service
@ -38,17 +49,40 @@ public class AppletOrderServiceImpl implements AppletOrderService {
private MpWxPayService mpWxPayService;
@Resource
private ICommonMoneyLogService commonMoneyLogService;
@Resource
private ICommonAddressService commonAddressService;
@Resource
private ICommonShopService commonShopService;
@Resource
private ICommonAddOrderService iCommonAddOrderService;
//获取订单信息列表带分页
@Override
public Result<?> getOrderPageBean(String token, Integer status, PageBean pageBean){
public Result<?> getOrderPageBean(String token, Integer state, PageBean pageBean){
HanHaiMember hanHaiMember = shiroRealm.checkUserTokenIsEffectHanHaiOpenId(token);
Page<CommonOrder> page = new Page<CommonOrder>(pageBean.getPageNo(), pageBean.getPageSize());
Page<CommonOrder> page1 = commonOrderService.lambdaQuery()
.eq(CommonOrder::getUserId, hanHaiMember.getId())
.eq(CommonOrder::getStatus, status)
.orderByDesc(CommonOrder::getCreateTime)
.page(page);
if(state != null){
page1 = commonOrderService.lambdaQuery()
.eq(CommonOrder::getUserId, hanHaiMember.getId())
.eq(CommonOrder::getStatus, state)
.orderByDesc(CommonOrder::getCreateTime)
.page(page);
}
//循环得到订单信息
List<CommonOrder> records = page1.getRecords();
for (CommonOrder commonOrder : records) {
commonOrder.setChildren(commonOrderService.lambdaQuery().eq(CommonOrder::getPid, commonOrder.getId()).list());
}
return Result.OK("订单信息查询成功",page1);
}
@ -60,6 +94,7 @@ public class AppletOrderServiceImpl implements AppletOrderService {
.eq(CommonOrder::getUserId, hanHaiMember.getId())
.eq(CommonOrder::getId, orderId)
.one();
commonOrder.setChildren(commonOrderService.lambdaQuery().eq(CommonOrder::getPid, commonOrder.getId()).list());
return Result.OK("订单信息查询成功",commonOrder);
}
@ -129,4 +164,162 @@ public class AppletOrderServiceImpl implements AppletOrderService {
}
//取消订单
@Override
public Result<?> cancelOrder(String token,String orderId){
HanHaiMember hanHaiMember = shiroRealm.checkUserTokenIsEffectHanHaiOpenId(token);
CommonOrder commonOrder = commonOrderService.getById(orderId);
if (commonOrder.getStatus().equals("0")){
commonOrder.setStatus("3");
commonOrderService.updateById(commonOrder);
HanHaiMember hanHaiMember1 = hanHaiMemberService.getById(hanHaiMember.getId());
hanHaiMember1.setMoney(hanHaiMember1.getMoney().add(commonOrder.getPrice()));
hanHaiMemberService.updateById(hanHaiMember1);
}
return Result.OK("取消成功");
}
//商城-支付回调
@Override
public Result<?> payNotify(String requestBody){
WxPayOrderNotifyResult notify = mpWxPayService.notify(requestBody);
String outTradeNo = notify.getOutTradeNo();
log.info("支付回调订单号码:"+outTradeNo);
//查询订单信息
CommonOrder commonOrder = commonOrderService.getById(outTradeNo);
//如果该订单为未支付修改订单状态
if (commonOrder.getStatus().equals("0")){
commonOrder.setStatus("1");
commonOrderService.updateById(commonOrder);
}
return null;
}
//商城-加入购物车之后一次下多个订单
//商城-立即购买多少商品
@Override
public Result<?> createSumOrder(String token,String list,String addressId,Integer payType,String orderAddId){
HanHaiMember hanHaiMember = shiroRealm.checkUserTokenIsEffectHanHaiOpenId(token);
//orderId 不为
if(StringUtils.isNotBlank(orderAddId)){
CommonAddOrder commonAddOrder = iCommonAddOrderService.getById(orderAddId);
//修改订单状态
commonAddOrder.setIsPay("Y");
iCommonAddOrderService.updateById(commonAddOrder);
}
//用户地址不能为空
if(StringUtils.isBlank(addressId)){
return Result.error("请选择收货地址");
}
//查询地址是否存在
CommonAddress commonAddress = commonAddressService.getById(addressId);
if (commonAddress==null){
return Result.error("地址不存在");
}
//把list转为对象 list = [{"shopId":"1","num":1},{"shopId":"2","num":2}]
List<CommonOrder> list1 = JSON.parseArray(list, CommonOrder.class);
//创建订单标识
String orderId = IdWorker.getIdStr();
if(null!=list1 && list1.size()>0){
//订单总额
BigDecimal totalPrice = new BigDecimal(0);
//订单商品数量
Integer totalNum = 0;
//创建订单详情
for (CommonOrder sku : list1) {
//查询商品信息
CommonShop commonShop = commonShopService.getById(sku.getShopId());
//商品不能为空
if (commonShop==null){
return Result.error("商品不存在");
}
//创建订单
BigDecimal price = commonShop.getPrice().multiply(new BigDecimal(sku.getNum()));
sku.setPid(orderId);
sku.setHasChild("0");
sku.setShopId(commonShop.getId());
sku.setTitle(commonShop.getName());
sku.setImage(commonShop.getImage());
sku.setPrice(price);
sku.setNum(sku.getNum());
sku.setMaterial(commonShop.getMaterial());
sku.setCreateTime(new Date());
sku.setPrice(price);
sku.setImage(commonShop.getImage());
sku.setCreateTime(new Date());
commonOrderService.save(sku);
//计算总价格
totalPrice = totalPrice.add(price);
totalNum = totalNum + sku.getNum();
}
//创建主订单
CommonOrder cityOrder = new CommonOrder();
cityOrder.setId(orderId);
cityOrder.setUserId(hanHaiMember.getId());
cityOrder.setShopId(null);
cityOrder.setNum(totalNum);
cityOrder.setAddress(commonAddress.getAddress());
cityOrder.setName(commonAddress.getName());
cityOrder.setPhone(commonAddress.getPhone());
cityOrder.setAddressDetail(commonAddress.getAddressDetails());
// cityOrder.seta(addressId);
cityOrder.setName(commonAddress.getName());
cityOrder.setTitle("组合订单");
cityOrder.setPrice(totalPrice);
cityOrder.setPid("0");
cityOrder.setHasChild("1");
// cityOrder.setShopState(2);
cityOrder.setImage(null);
cityOrder.setStatus("0");
cityOrder.setCreateTime(new Date());
commonOrderService.save(cityOrder);
//吊起微信支付
String s = totalPrice.multiply(new BigDecimal(100)).toString();
int i1 = Double.valueOf(s).intValue();
Object appOrder = mpWxPayService.createOrder(
"购买"+ "组合订单" ,
"127.0.0.1",
orderId,
i1,
orderId,
hanHaiMember.getAppletOpenid(),
cityOrder.toString());
return Result.OK("支付成功",appOrder);
}
return null;
}
}

+ 9
- 0
module-common/src/main/java/org/jeecg/modules/commonAddOrder/entity/CommonAddOrder.java View File

@ -4,11 +4,15 @@ import java.io.Serializable;
import java.io.UnsupportedEncodingException;
import java.util.Date;
import java.math.BigDecimal;
import java.util.List;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.jeecg.modules.commonShop.entity.CommonShop;
import org.springframework.format.annotation.DateTimeFormat;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.jeecg.common.aspect.annotation.Dict;
@ -79,4 +83,9 @@ public class CommonAddOrder implements Serializable {
@Excel(name = "是否支付", width = 15)
@ApiModelProperty(value = "是否支付")
private java.lang.String isPay;
@TableField(exist = false)
private List<CommonShop> commonShop;
}

+ 30
- 0
module-common/src/main/java/org/jeecg/modules/commonOrder/entity/CommonOrder.java View File

@ -4,7 +4,10 @@ import java.io.Serializable;
import java.io.UnsupportedEncodingException;
import java.util.Date;
import java.math.BigDecimal;
import java.util.List;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
@ -93,4 +96,31 @@ public class CommonOrder implements Serializable {
@Excel(name = "间推佣金", width = 15)
@ApiModelProperty(value = "间推佣金")
private java.math.BigDecimal twoMoney;
private Integer num;
/**材料*/
@Excel(name = "材料", width = 15)
@ApiModelProperty(value = "材料")
private java.lang.String material;
/**关联商品*/
@Excel(name = "关联商品", width = 15)
@ApiModelProperty(value = "关联商品")
private java.lang.String shopId;
/**父级节点*/
@Excel(name = "父级节点", width = 15)
@ApiModelProperty(value = "父级节点")
private java.lang.String pid;
/**是否有子节点*/
@Excel(name = "是否有子节点", width = 15, dicCode = "yn")
@Dict(dicCode = "yn")
@ApiModelProperty(value = "是否有子节点")
private java.lang.String hasChild;
@TableField (exist = false)
private List<CommonOrder> children;
}

+ 7
- 0
module-common/src/main/java/org/jeecg/modules/commonShopClass/entity/CommonShopClass.java View File

@ -4,6 +4,7 @@ import java.io.Serializable;
import java.util.Date;
import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
@ -14,6 +15,7 @@ import org.jeecg.common.aspect.annotation.Dict;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.UnsupportedEncodingException;
import java.util.List;
/**
* @Description: 商品分类表
@ -60,4 +62,9 @@ public class CommonShopClass implements Serializable {
@Dict(dicCode = "yn")
@ApiModelProperty(value = "是否有子节点")
private java.lang.String hasChild;
@TableField (exist = false)
private List<CommonShopClass> children;
}

+ 1
- 1
module-system/src/main/resources/application-dev.yml View File

@ -1,5 +1,5 @@
server:
port: 8001
port: 8002
tomcat:
max-swallow-size: -1
error:


+ 7
- 7
module-system/src/main/resources/pay_weixin.properties View File

@ -1,10 +1,10 @@
pay.mchId=1659066870
pay.appId=wx797abcfb479c75ec
pay.mchKey=vtribevtribevtribevtribevtribe12
pay.mchId=1715326134
pay.appId=wx328ba180b4a88d49
pay.mchKey=0fdb77429ffdf206c151af76a663041c
pay.keyPath=classpath:apiclient_cert.pem
pay.notifyUrl=https://popularize-admin.hhlm1688.com/popularize-admin/order_common/payNotify
pay.notifyUrlDev=https://popularize-admin.hhlm1688.com/popularize-admin/order_common/payNotify
pay.notifyOneUrl=https://popularize-admin.hhlm1688.com/popularize-admin/order_common/payNotify
pay.notifyUrlOneDev=https://popularize-admin.hhlm1688.com/popularize-admin/order_common/payNotify
pay.notifyUrl=https://building-admin.hhlm1688.com/building-admin/order/payNotify
pay.notifyUrlDev=https://building-admin.hhlm1688.com/building-admin/order/payNotify
pay.notifyOneUrl=https://building-admin.hhlm1688.com/building-admin/order/payNotify
pay.notifyUrlOneDev=https://building-admin.hhlm1688.com/building-admin/order/payNotify

Loading…
Cancel
Save