cloud-server-account/src/main/java/com/dsh/account/controller/StoreStaffController.java
New file @@ -0,0 +1,27 @@ package com.dsh.account.controller; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.dsh.account.entity.TCityManager; import com.dsh.account.entity.TStoreStaff; import com.dsh.account.feignclient.model.CityListQuery; import com.dsh.account.service.TStoreStaffService; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; @RestController @RequestMapping("") public class StoreStaffController { @Resource private TStoreStaffService tsstaService; @ResponseBody @PostMapping("/base/storeStaff/infoById") public TStoreStaff baseInfo(@RequestBody Integer id){ return tsstaService.getById(id); } } cloud-server-account/src/main/java/com/dsh/account/entity/TStoreStaff.java
New file @@ -0,0 +1,63 @@ package com.dsh.account.entity; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.extension.activerecord.Model; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; import java.io.Serializable; /** * <p> * 门店员工 * </p> */ @Data @EqualsAndHashCode(callSuper = false) @Accessors(chain = true) @TableName("t_store_staff") public class TStoreStaff extends Model<TStoreStaff> { private static final long serialVersionUID = 1L; /** * 主键 */ @TableId(value = "id", type = IdType.AUTO) private Integer id; /** * 名称 */ @TableField("name") private String name; /** * 手机号 */ @TableField("phone") private Integer phone; /** * 密码 */ @TableField("password") private Integer password; /** * 所属门店id */ @TableField("storeId") private Integer storeId; /** * 状态(1=正常,2=冻结,3=删除) */ @TableField("state") private Integer state; @Override protected Serializable pkVal() { return this.id; } } cloud-server-account/src/main/java/com/dsh/account/mapper/TStoreStaffMapper.java
New file @@ -0,0 +1,8 @@ package com.dsh.account.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.dsh.account.entity.TStoreStaff; public interface TStoreStaffMapper extends BaseMapper<TStoreStaff> { } cloud-server-account/src/main/java/com/dsh/account/service/TStoreStaffService.java
New file @@ -0,0 +1,16 @@ package com.dsh.account.service; import com.baomidou.mybatisplus.extension.service.IService; import com.dsh.account.entity.TStoreStaff; /** * <p> * 教练 服务类 * </p> * * @author jqs * @since 2023-07-05 */ public interface TStoreStaffService extends IService<TStoreStaff> { } cloud-server-account/src/main/java/com/dsh/account/service/impl/TStoreStaffServiceImpl.java
New file @@ -0,0 +1,20 @@ package com.dsh.account.service.impl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.dsh.account.entity.TStoreStaff; import com.dsh.account.mapper.TStoreStaffMapper; import com.dsh.account.service.TStoreStaffService; import org.springframework.stereotype.Service; /** * <p> * 教练 服务实现类 * </p> * * @author jqs * @since 2023-07-05 */ @Service public class TStoreStaffServiceImpl extends ServiceImpl<TStoreStaffMapper, TStoreStaff> implements TStoreStaffService { } cloud-server-account/src/main/java/com/dsh/account/util/GDMapGeocodingUtil.java
@@ -189,7 +189,7 @@ * @param endLonLat 结束经纬度(目标经纬度) * @return java.lang.Long 两个定位点之间的距离 */ public String getDistanceTOKilometer(String startLonLat, String endLonLat) { public double getDistanceTOKilometer(String startLonLat, String endLonLat) { try { // 返回起始地startAddr与目的地endAddr之间的距离,单位:米 Long result = new Long(0); @@ -200,11 +200,12 @@ String queryResult = getResponse(queryUrl); JSONObject job = JSONObject.parseObject(queryResult); JSONArray ja = job.getJSONArray("results"); if (ja.size() == 0){ return 0.00; } JSONObject jobO = JSONObject.parseObject(ja.getString(0)); result = Long.parseLong(jobO.get("distance").toString()); double kilDis = (double) result / 1000; DecimalFormat decimalFormat = new DecimalFormat("#.00"); return decimalFormat.format(kilDis); return (double) result / 1000; } catch (Exception e) { throw new RuntimeException(); } cloud-server-account/src/main/resources/mapper/TStoreStaffMapper.xml
New file @@ -0,0 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.dsh.account.mapper.TStoreStaffMapper"> </mapper> cloud-server-activity/src/main/java/com/dsh/activity/controller/CouponController.java
@@ -1,15 +1,27 @@ package com.dsh.activity.controller; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.dsh.activity.entity.Coupon; import com.dsh.activity.entity.CouponCity; import com.dsh.activity.entity.CouponStore; import com.dsh.activity.entity.UserCoupon; import com.dsh.activity.feignclient.account.CityClient; import com.dsh.activity.feignclient.account.StoreStaffClient; import com.dsh.activity.feignclient.account.model.TCityManager; import com.dsh.activity.feignclient.account.model.TStoreStaff; import com.dsh.activity.feignclient.model.CouponExamineListSearch; import com.dsh.activity.feignclient.model.CouponListOfSearch; import com.dsh.activity.feignclient.other.StoreClient; import com.dsh.activity.feignclient.other.model.Store; import com.dsh.activity.model.CouponListVo; import com.dsh.activity.model.request.CommodityRequest; import com.dsh.activity.model.request.CouponPackageReq; import com.dsh.activity.model.response.CouponPackageResp; import com.dsh.activity.service.CouponCityService; import com.dsh.activity.service.CouponStoreService; import com.dsh.activity.service.ICouponService; import com.dsh.activity.service.UserCouponService; import com.dsh.activity.util.GDMapGeocodingUtil; @@ -22,8 +34,10 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import java.text.SimpleDateFormat; import java.util.*; import java.util.stream.Collectors; /** * @author zhibing.pu @@ -45,6 +59,21 @@ @Autowired private GDMapGeocodingUtil gdMapGeocodingUtil; @Resource private CityClient citClient; @Resource private StoreStaffClient stoStaClient; @Resource private StoreClient stoClient; @Resource private CouponStoreService couStoreService; @Resource private CouponCityService cityService; @@ -139,8 +168,17 @@ Iterator<Coupon> iterator = couponList.iterator(); while (iterator.hasNext()) { Coupon merchandise = iterator.next(); if (merchandise.getUseScope() == 2 && (!Objects.equals(merchandise.getCityCode(), cityCode) && !Objects.equals(merchandise.getProvinceCode(), provinceCode))) { if (merchandise.getUseScope() == 2){ List<CouponCity> couponCities = cityService.list(new LambdaQueryWrapper<CouponCity>() .eq(CouponCity::getCouponId,merchandise.getId())); if (couponCities.size() > 0){ for (CouponCity couponCity : couponCities) { if (!Objects.equals(couponCity.getCityCode(), cityCode) && !Objects.equals(couponCity.getProvinceCode(), provinceCode)){ iterator.remove(); // 移除符合条件的商品 break; } } } } } } @@ -192,6 +230,13 @@ Object startTime = stringObjectMap.get("startTime"); Object endTime = stringObjectMap.get("endTime"); stringObjectMap.put("timeValue",startTime + "至"+endTime); Integer publisherType = (Integer) stringObjectMap.get("publisherType"); if ( publisherType == 1) { Integer cityManagerId = (Integer) stringObjectMap.get("cityManagerId"); TCityManager byId = citClient.getById(cityManagerId); stringObjectMap.put("province", byId.getProvince()); stringObjectMap.put("city", byId.getCity()); } } } return mapList; @@ -204,25 +249,105 @@ Coupon coupon = couponService.getById(id); SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd"); if (ToolUtil.isNotEmpty(coupon)){ couponInfo.put("",coupon.getId()); couponInfo.put("",coupon.getName()); couponInfo.put("",coupon.getAuditStatus()); couponInfo.put("",coupon.getProvince()); couponInfo.put("",coupon.getCity()); couponInfo.put("",coupon.getType()); couponInfo.put("",coupon.getContent()); couponInfo.put("",coupon.getIllustrate()); couponInfo.put("",coupon.getDistributionMethod()); couponInfo.put("",coupon.getRedemptionMethod()); couponInfo.put("id",coupon.getId()); couponInfo.put("auditStatus",coupon.getAuditStatus()); couponInfo.put("publisherType",coupon.getPublisherType()); if (coupon.getPublisherType() == 1){ TCityManager byId = citClient.getById(coupon.getCityManagerId()); couponInfo.put("province",byId.getProvince()); couponInfo.put("city",byId.getCity()); } couponInfo.put("name",coupon.getName()); couponInfo.put("type",coupon.getType()); JSONObject jsonObject = JSON.parseObject(coupon.getContent()); switch (coupon.getType()){ case 1: couponInfo.put("num1",jsonObject.getDouble("num1")); couponInfo.put("num2",jsonObject.getDouble("num2")); break; case 2: couponInfo.put("num1",jsonObject.getDouble("num1")); break; case 3: couponInfo.put("num1",jsonObject.getString("num1")); break; default: break; } couponInfo.put("illustrate",coupon.getIllustrate()); switch (coupon.getDistributionMethod()){ case 1: couponInfo.put("distributionMethod","积分注册"); break; case 2: couponInfo.put("distributionMethod","注册赠送"); break; case 3: couponInfo.put("distributionMethod","自动发券"); break; default: break; } couponInfo.put("redemptionMethod",coupon.getRedemptionMethod()); couponInfo.put("integral",coupon.getIntegral()); couponInfo.put("cash",coupon.getCash()); couponInfo.put("userPopulation",coupon.getUserPopulation()); switch (coupon.getUserPopulation()){ case 1: couponInfo.put("userPopulation","全部用户"); break; case 2: couponInfo.put("userPopulation","年度会员"); break; case 3: couponInfo.put("userPopulation","已有学员用户"); break; default: break; } couponInfo.put("quantityIssued",coupon.getQuantityIssued()); couponInfo.put("pickUpQuantity",coupon.getPickUpQuantity()); String startTime = simpleDateFormat.format(coupon.getStartTime()); String endTime = simpleDateFormat.format(coupon.getEndTime()); couponInfo.put("timeValue",startTime + "至"+endTime); couponInfo.put("useScope",coupon.getUseScope()); ArrayList<Map<String, Object>> maps = new ArrayList<>(); switch (coupon.getUseScope()){ case 2: List<CouponCity> couponCities = cityService.list(new LambdaQueryWrapper<CouponCity>() .eq(CouponCity::getCouponId,coupon.getId())); if (couponCities.size() > 0){ for (CouponCity couponCity : couponCities) { HashMap<String, Object> stringObjectHashMap = new HashMap<>(); stringObjectHashMap.put("province",couponCity.getProvince()); stringObjectHashMap.put("city",couponCity.getCity()); maps.add(stringObjectHashMap); } couponInfo.put("rangeData",maps); } break; case 3: List<CouponStore> list = couStoreService.list(new LambdaQueryWrapper<CouponStore>() .eq(CouponStore::getCouponId,coupon.getId())); if (list.size() > 0){ List<Integer> collect = list.stream().map(CouponStore::getStoreId).collect(Collectors.toList()); List<Store> storeList = stoClient.queryStoreByIds(collect); if (storeList.size() > 0){ for (Store store : storeList) { TStoreStaff list1 = stoStaClient.baseInfo(store.getStoreStaffId()); HashMap<String, Object> stringObjectHashMap = new HashMap<>(); stringObjectHashMap.put("procity",store.getProvince()+store.getCity()); stringObjectHashMap.put("storeAccount",list1.getName()+"+"+list1.getPhone()); stringObjectHashMap.put("storeName",store.getName()); maps.add(stringObjectHashMap); } couponInfo.put("rangeData",maps); } } break; default: break; } } return couponInfo; } cloud-server-activity/src/main/java/com/dsh/activity/controller/PointMercharsController.java
@@ -1,6 +1,7 @@ package com.dsh.activity.controller; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.dsh.activity.entity.*; import com.dsh.activity.feignclient.course.CoursePackageClient; @@ -22,6 +23,7 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; import java.text.SimpleDateFormat; import java.util.*; import java.util.stream.Collectors; @@ -63,6 +65,9 @@ @Autowired private TokenUtil tokenUtil; @Resource private CouponCityService ccityService; @PostMapping("/base/pointMerchars/convertGoods") @@ -267,7 +272,11 @@ if (coupon.getUseScope() == 1){ detailsVo.setBelongs("全国通用"); }else if (coupon.getUseScope() == 2){ detailsVo.setBelongs(coupon.getProvince()+"|"+coupon.getCity() + "用户可用"); List<CouponCity> list = ccityService.list(new LambdaQueryWrapper<CouponCity>() .eq(CouponCity::getCouponId, coupon.getId())); if (list.size() > 0){ detailsVo.setBelongs(list.get(0).getProvince()+"|"+list.get(0).getCity() + "用户可用"); } }else { List<CouponStore> list = cstoreService.list(new QueryWrapper<CouponStore>() .eq("couponId",coupon.getId() )); cloud-server-activity/src/main/java/com/dsh/activity/entity/Coupon.java
@@ -108,26 +108,6 @@ @TableField("useScope") private Integer useScope; /** * 省 */ @TableField("province") private String province; /** * 省编号 */ @TableField("provinceCode") private String provinceCode; /** * 市 */ @TableField("city") private String city; /** * 市编号 */ @TableField("cityCode") private String cityCode; /** * 审核状态(1=待审核,2=已通过,3=已拒绝) */ @TableField("auditStatus") @@ -168,7 +148,16 @@ */ @TableField("productImages") private String productImages; /** * 发布人类型 1=城市管理者 2=平台管理者 */ @TableField("publisherType") private Integer publisherType; /** * 城市管理者id */ @TableField("cityManagerId") private Integer cityManagerId; @Override protected Serializable pkVal() { cloud-server-activity/src/main/java/com/dsh/activity/entity/CouponCity.java
New file @@ -0,0 +1,66 @@ package com.dsh.activity.entity; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.extension.activerecord.Model; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; import java.io.Serializable; /** * <p> * 优惠券使用门店关系数据 * </p> * * @author jqs * @since 2023-07-07 */ @Data @EqualsAndHashCode(callSuper = false) @Accessors(chain = true) @TableName("t_coupon_city") public class CouponCity extends Model<CouponCity> { private static final long serialVersionUID = 1L; /** * 主键 */ @TableId(value = "id", type = IdType.AUTO) private Integer id; /** * 优惠券id */ private Integer couponId; /** * 省 */ @TableField("province") private String province; /** * 省编号 */ @TableField("provinceCode") private String provinceCode; /** * 市 */ @TableField("city") private String city; /** * 市编号 */ @TableField("cityCode") private String cityCode; @Override protected Serializable pkVal() { return this.id; } } cloud-server-activity/src/main/java/com/dsh/activity/feignclient/account/CityClient.java
New file @@ -0,0 +1,15 @@ package com.dsh.activity.feignclient.account; import com.dsh.activity.feignclient.account.model.TCityManager; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.PostMapping; @FeignClient("mb-cloud-account") public interface CityClient { @PostMapping("/base/city/getById") TCityManager getById(Integer id); } cloud-server-activity/src/main/java/com/dsh/activity/feignclient/account/StoreStaffClient.java
New file @@ -0,0 +1,16 @@ package com.dsh.activity.feignclient.account; import com.dsh.activity.feignclient.account.model.TStoreStaff; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.PostMapping; @FeignClient("mb-cloud-account") public interface StoreStaffClient { @PostMapping("/base/storeStaff/infoById") TStoreStaff baseInfo(Integer id); } cloud-server-activity/src/main/java/com/dsh/activity/feignclient/account/model/TCityManager.java
New file @@ -0,0 +1,19 @@ package com.dsh.activity.feignclient.account.model; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; @Data public class TCityManager { private Integer id; private String name; private String phone; private String password; private String province; private String provinceCode; private String city; private String cityCode; private Integer state; } cloud-server-activity/src/main/java/com/dsh/activity/feignclient/account/model/TStoreStaff.java
New file @@ -0,0 +1,48 @@ package com.dsh.activity.feignclient.account.model; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.extension.activerecord.Model; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; import java.io.Serializable; /** * <p> * 门店员工 * </p> */ @Data public class TStoreStaff { /** * 主键 */ private Integer id; /** * 名称 */ private String name; /** * 手机号 */ private Integer phone; /** * 密码 */ private Integer password; /** * 所属门店id */ private Integer storeId; /** * 状态(1=正常,2=冻结,3=删除) */ private Integer state; } cloud-server-activity/src/main/java/com/dsh/activity/feignclient/other/StoreClient.java
@@ -1,9 +1,12 @@ package com.dsh.activity.feignclient.other; import com.dsh.activity.feignclient.other.model.Store; import com.dsh.activity.feignclient.other.model.StoreDetailOfCourse; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestParam; import java.util.List; @FeignClient(value = "mb-cloud-other") public interface StoreClient { @@ -11,4 +14,8 @@ @PostMapping("/base/protocol/storeDetail/courseOfSto") StoreDetailOfCourse getCourseOfStore(@RequestParam("storeId") Integer storeId); @PostMapping("/store/queryStoreByIds") List<Store> queryStoreByIds(List<Integer> ids); } cloud-server-activity/src/main/java/com/dsh/activity/feignclient/other/model/Store.java
New file @@ -0,0 +1,109 @@ package com.dsh.activity.feignclient.other.model; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.extension.activerecord.Model; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; import java.io.Serializable; import java.math.BigDecimal; /** * <p> * 门店信息 * </p> * * @author jqs * @since 2023-06-14 */ @Data public class Store { /** * 主键 */ private Integer id; /** * 门店名称 */ private String name; /** * 门店店长id */ private Integer storeStaffId; /** * 城市管理员id */ private Integer cityManagerId; /** * 省 */ private String province; /** * 省编号 */ private String provinceCode; /** * 市 */ private String city; /** * 市编号 */ @TableField("cityCode") private String cityCode; /** * 联系电话 */ private String phone; /** * 详细地址 */ private String address; /** * 纬度 */ private String lat; /** * 经度 */ private String lon; /** * 营业开始时间 */ private String startTime; /** * 营业结束时间 */ private String endTime; /** * 封面图 */ private String coverDrawing; /** * 实景图 */ private String realPicture; /** * 门店介绍 */ private String introduce; /** * 福利图片 */ private String welfarePicture; /** * 评分 */ private BigDecimal score; /** * 状态(1=正常,2=冻结,3=删除) */ private Integer state; } cloud-server-activity/src/main/java/com/dsh/activity/mapper/CouponCityMapper.java
New file @@ -0,0 +1,17 @@ package com.dsh.activity.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.dsh.activity.entity.CouponCity; import com.dsh.activity.entity.CouponStore; /** * <p> * 优惠券使用门店关系数据 Mapper 接口 * </p> * * @author jqs * @since 2023-07-07 */ public interface CouponCityMapper extends BaseMapper<CouponCity> { } cloud-server-activity/src/main/java/com/dsh/activity/service/CouponCityService.java
New file @@ -0,0 +1,16 @@ package com.dsh.activity.service; import com.baomidou.mybatisplus.extension.service.IService; import com.dsh.activity.entity.CouponCity; /** * <p> * 优惠券使用门店关系数据 服务类 * </p> * * @author jqs * @since 2023-07-07 */ public interface CouponCityService extends IService<CouponCity> { } cloud-server-activity/src/main/java/com/dsh/activity/service/impl/CouponCityServiceImpl.java
New file @@ -0,0 +1,20 @@ package com.dsh.activity.service.impl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.dsh.activity.entity.CouponCity; import com.dsh.activity.mapper.CouponCityMapper; import com.dsh.activity.service.CouponCityService; import org.springframework.stereotype.Service; /** * <p> * 优惠券使用门店关系数据 服务实现类 * </p> * * @author jqs * @since 2023-07-07 */ @Service public class CouponCityServiceImpl extends ServiceImpl<CouponCityMapper, CouponCity> implements CouponCityService { } cloud-server-activity/src/main/resources/mapper/CouponCityMapper.xml
New file @@ -0,0 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.dsh.activity.mapper.CouponCityMapper"> </mapper> cloud-server-course/src/main/java/com/dsh/course/feignclient/other/StoreClient.java
@@ -34,5 +34,5 @@ Store queryStoreById(Integer id); @PostMapping("/base/protocol/storeDetail/distanceCal") public long calculateDistance(@RequestBody GetDistanceVo distanceVo); String calculateDistance(@RequestBody GetDistanceVo distanceVo); } cloud-server-course/src/main/java/com/dsh/course/model/vo/response/Details.java
@@ -39,7 +39,7 @@ private Integer status; @ApiModelProperty(value = "门店距离") private long storeDistance; private String storeDistance; } cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageDiscountServiceImpl.java
@@ -82,16 +82,6 @@ if (integer >= maxSubscribeNumber){ continue; } /** * [{ * "startDate": "2023-01-01 00:00:00", * "endDate": "2023-12-31 23:59:59", * "startTime": "02:00:00", * "endTime": "23:00:00", * "weeks": [1, 2, 7], * "cashPayment": 100 * }] */ try { JSONArray jsonArray = JSON.parseArray(tCoursePackageDiscount.getContent()); JSONObject jsonObject = jsonArray.getJSONObject(0); @@ -139,7 +129,8 @@ distanceVo.setLatitude(lat); distanceVo.setLongitude(lon); distanceVo.setStoreId(coursePackage.getStoreId()); resde.setStoreDistance(sreClient.calculateDistance(distanceVo)); String s = sreClient.calculateDistance(distanceVo); resde.setStoreDistance(s); list.add(resde); } } @@ -183,6 +174,7 @@ e.printStackTrace(); } } } } else { tCoursePackageDiscountQueryWrapper.eq("type", 4); tCoursePackageDiscounts = this.baseMapper.selectList(tCoursePackageDiscountQueryWrapper); @@ -197,14 +189,6 @@ if (integer >= maxSubscribeNumber){ continue; } // [{ // "startDate": "2023-01-01 00:00:00", // "endDate": "2023-12-31 23:59:59", // "startTime": "02:00:00", // "endTime": "23:00:00", // "weeks": [1, 2, 7], // "hour": 10 // }] try { JSONArray jsonArray = JSON.parseArray(tCoursePackageDiscount.getContent()); JSONObject jsonObject = jsonArray.getJSONObject(0); @@ -299,7 +283,7 @@ } } } } System.out.println("list"+list); return list; } @@ -323,8 +307,8 @@ distanceVo.setLatitude(lat); distanceVo.setLongitude(lon); distanceVo.setStoreId(coursePackage.getStoreId()); long l = sreClient.calculateDistance(distanceVo); packageResponse.setDistance(l); String s = sreClient.calculateDistance(distanceVo); packageResponse.setDistance(Double.valueOf(s)); JSONArray jsonArray = JSON.parseArray(coursePackageDiscount.getContent()); JSONObject jsonObject = jsonArray.getJSONObject(0); cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCouponExamineController.java
@@ -35,7 +35,7 @@ */ @RequestMapping("") public String index(Model model) { return PREFIX + "TCouponExamine.html"; return PREFIX + "TCouponExamineList.html"; } @@ -54,15 +54,7 @@ ofSearch.setDistributionMethod(distributionMethod); ofSearch.setUserPopulation(userPopulation); ofSearch.setAuditStatus(auditStatus); List<Map<String, Object>> couponExamineListOfSearch = client.getCouponExamineListOfSearch(ofSearch); if (couponExamineListOfSearch.size() > 0){ for (Map<String, Object> examineListOfSearch : couponExamineListOfSearch) { examineListOfSearch.put("province",""); examineListOfSearch.put("city",""); examineListOfSearch.put("account",""); } } return couponExamineListOfSearch; return client.getCouponExamineListOfSearch(ofSearch); } /** @@ -70,9 +62,13 @@ */ @RequestMapping(value = "/couponOfDetail/{id}") @ResponseBody public Object detailOfCoupon(@PathVariable Integer id){ Map<String,Object> couponMap = client.queryCouponExamineDetail(id); return null;// TODO: 2023/7/31 public String detailOfCoupon(@PathVariable Integer id, Model model){ Map<String, Object> stringObjectMap = client.queryCouponExamineDetail(id); model.addAllAttributes(stringObjectMap); return PREFIX + "TCouponExamineInfo.html"; } } cloud-server-management/src/main/webapp/WEB-INF/view/system/tCoupon/TCouponAdd.html
@@ -12,6 +12,7 @@ </div> </div> </div> <div class="row"> <div class="col-sm-5"> <div class="form-group"> @@ -51,6 +52,7 @@ </div> </div> </div> <div class="row"> <div class="col-sm-5"> <div class="form-group"> @@ -62,6 +64,7 @@ </div> </div> </div> <div class="row"> <div class="col-sm-5"> <div class="form-group"> @@ -109,6 +112,7 @@ </div> </div> </div> <div class="row" id="needIntegral"> <div class="col-sm-5"> <div class="form-group"> @@ -136,6 +140,7 @@ </div> </div> </div> <div class="row" > <div class="col-sm-5"> <div class="form-group"> @@ -153,6 +158,7 @@ </div> </div> </div> <div class="row" > <div class="col-sm-5"> <div class="form-group"> @@ -161,6 +167,7 @@ </div> </div> </div> <div class="row" > <div class="col-sm-5"> <div class="form-group"> @@ -168,14 +175,15 @@ </div> </div> </div> <div class="row" > <div class="col-sm-5"> <div class="form-group"> <label class="col-sm-3 control-label"><font style="color:red">*</font>商品图片(请上传不超过五张图片): </label> <input id="file-1" type="file" multiple class="file" data-overwrite-initial="false"> </div> </div> </div> <div class="row"> <div class="col-sm-5"> @@ -213,7 +221,6 @@ </div> </div> <div class="row" id="storeSelect"> <div class="col-sm-5"> <div class="form-group"> @@ -239,7 +246,6 @@ </div> </div> <div class="row"> <div class="row btn-group-m-t"> <div class="col-sm-10" style="margin-left: 20%;"> @@ -257,6 +263,11 @@ </div> </div> <script src="${ctxPath}/modular/system/tCoupon/TCouponInfo.js"></script> <!--引入fileinput样式--> <link href="https://cdn.bootcss.com/bootstrap-fileinput/4.5.1/css/fileinput.min.css" rel="stylesheet"> <!--引入fileinput插件--> <script src="https://cdn.bootcss.com/bootstrap-fileinput/4.5.1/js/fileinput.min.js"></script> <script src="https://cdn.bootcss.com/bootstrap-fileinput/4.5.1/js/locales/zh.min.js"></script> <script type="text/javascript"> laydate.render({ elem: '#periodOfValidity', @@ -264,4 +275,24 @@ range: true }); </script> <script> $("#file-1").fileinput({ overwriteInitial: false, previewFileType: "image", allowedFileExtensions: ["jpg", "png", "gif"], maxFileSize: 1024 * 10, maxFilesNum: 10, showUploadedThumbs: false, resizeImage: true, language: "zh", initialPreview: [ "<img src='http://placehold.it/200x150' class='file-preview-image' alt='不支持预览'/>", "<img src='http://placehold.it/200x150' class='file-preview-image' alt='不支持预览'/>" ], initialPreviewConfig: [ {caption: "image-1.jpg", size: 327360, width: "120px", url: "/images/delete", key: 1}, {caption: "image-2.png", size: 436389, width: "120px", url: "/images/delete", key: 2} ] }); </script> @} cloud-server-management/src/main/webapp/WEB-INF/view/system/tCouponExamine/TCouponExamineInfo.html
New file @@ -0,0 +1,145 @@ @layout("/common/_container.html"){ <div class="ibox float-e-margins"> <div class="ibox-content"> <div class="form-horizontal"> <div class="row"> <div class="col-sm-5"> <div class="form-group"> <label class="col-sm-3 control-label"><font style="color:red">*</font>当前状态: </label> <div class="col-sm-9"> <label style="color: #c0a16b">待审核</label> <label style="color: red">未通过</label> </div> </div> </div> </div> <div class="row"> <div class="col-sm-5"> <div class="form-group"> <label class="col-sm-3 control-label"><font style="color:red">*</font>发布省: </label> <div class="col-sm-9"> <label style="color: #c0a16b">待审核</label> <label style="color: red">未通过</label> </div> </div> </div> </div> <div class="row"> <div class="col-sm-5"> <div class="form-group"> <label class="col-sm-3 control-label"><font style="color:red">*</font>发布城市: </label> <div class="col-sm-9"> <label style="color: #c0a16b">待审核</label> <label style="color: red">未通过</label> </div> </div> </div> </div> <div class="row"> <div class="col-sm-5"> <div class="form-group"> <label class="col-sm-3 control-label"><font style="color:red">*</font>优惠券名称: </label> <div class="col-sm-9"> <label style="color: #c0a16b">待审核</label> <label style="color: red">未通过</label> </div> </div> </div> </div> <div class="row"> <div class="col-sm-5"> <div class="form-group"> <label class="col-sm-3 control-label"><font style="color:red">*</font>优惠券类型: </label> <div class="col-sm-9"> <label style="color: #c0a16b">满减券:满</label> <input value="${num1}"> <label style="color: red">元,减</label> <input value="${num2}"> <label style="color: red">元</label> </div> <div class="col-sm-9"> <label style="color: #c0a16b">代金券:可抵</label> <input value="${num1}"> <label style="color: red">元</label> </div> <div class="col-sm-9"> <label style="color: #c0a16b">优惠券:满</label> <input value="${num1}"> <label style="color: red">元,减</label> <input> <label style="color: red">元</label> </div> </div> </div> </div> <div class="row"> <div class="col-sm-5"> <div class="form-group"> <label class="col-sm-3 control-label"><font style="color:red">*</font>发布城市: </label> <div class="col-sm-9"> <label style="color: #c0a16b">待审核</label> <label style="color: red">未通过</label> </div> </div> </div> </div> <div class="row"> <div class="col-sm-5"> <div class="form-group"> <label class="col-sm-3 control-label"><font style="color:red">*</font>发布城市: </label> <div class="col-sm-9"> <label style="color: #c0a16b">待审核</label> <label style="color: red">未通过</label> </div> </div> </div> </div> <div class="row"> <div class="col-sm-5"> <div class="form-group"> <label class="col-sm-3 control-label"><font style="color:red">*</font>发布城市: </label> <div class="col-sm-9"> <label style="color: #c0a16b">待审核</label> <label style="color: red">未通过</label> </div> </div> </div> </div> <div class="row"> <div class="col-sm-5"> <div class="form-group"> <label class="col-sm-3 control-label"><font style="color:red">*</font>发布城市: </label> <div class="col-sm-9"> <label style="color: #c0a16b">待审核</label> <label style="color: red">未通过</label> </div> </div> </div> </div> <div class="row"> <div class="row btn-group-m-t"> <div class="col-sm-10" style="margin-left: 20%;"> <#button btnCss="danger" name="取消" id="cancel" icon="fa-eraser" clickFun="couponInfoDlg.close()"/> </div> <div class="col-sm-10" style="margin-left: 35%;margin-top: -2.5%"> <#button btnCss="info" name="保存" id="ensure" icon="fa-check" clickFun="couponInfoDlg.addSubmit()"/> </div> </div> </div> </div> </div> </div> <script src="${ctxPath}/modular/system/tCouponExamine/TCouponExamine.js"></script> @} cloud-server-management/src/main/webapp/WEB-INF/view/system/tCouponExamine/TCouponExamineList.html
cloud-server-other/src/main/java/com/dsh/other/controller/StoreController.java
@@ -1,6 +1,7 @@ package com.dsh.other.controller; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.dsh.other.entity.Store; import com.dsh.other.feignclient.model.*; @@ -89,12 +90,11 @@ * @return */ @PostMapping("/base/protocol/storeDetail/distanceCal") public long calculateDistance(@RequestBody GetDistanceVo distanceVo){ public String calculateDistance(@RequestBody GetDistanceVo distanceVo){ String current = distanceVo.getLongitude()+","+distanceVo.getLatitude(); Store store = storeService.getById(distanceVo.getStoreId()); String result = store.getLon()+","+store.getLat(); String distanceTOKilometer = gdMapGeocodingUtil.getDistanceTOKilometer(current, result); return Long.parseLong(distanceTOKilometer); return gdMapGeocodingUtil.getDistanceTOKilometer(current, result); } @@ -149,6 +149,22 @@ } /** * 获取门店列表 * @return */ @ResponseBody @PostMapping("/store/queryStoreByIds") public List<Store> queryStoreByIds(List<Integer> ids){ try { return storeService.list(new LambdaQueryWrapper<Store>() .in(Store::getId,ids)); }catch (Exception e){ e.printStackTrace(); return new ArrayList<>(); } } cloud-server-other/src/main/java/com/dsh/other/feignclient/StoreClient.java
@@ -23,7 +23,7 @@ @PostMapping("/base/protocol/storeDetail/distanceCal") public long calculateDistance(@RequestBody GetDistanceVo distanceVo); double calculateDistance(@RequestBody GetDistanceVo distanceVo); @PostMapping("/base/protocol/storeDetail/citycodeLoLa") List<StoreDetailList> getQueryStoreList(@RequestBody StoreOfCitycodeResp citycodeResp); cloud-server-other/src/main/java/com/dsh/other/util/GDMapGeocodingUtil.java
@@ -199,11 +199,14 @@ String queryResult = getResponse(queryUrl); JSONObject job = JSONObject.parseObject(queryResult); JSONArray ja = job.getJSONArray("results"); if (ja.size() == 0){ return 0.00 + ""; } JSONObject jobO = JSONObject.parseObject(ja.getString(0)); result = Long.parseLong(jobO.get("distance").toString()); double kilDis = (double) result / 1000; DecimalFormat decimalFormat = new DecimalFormat("#.00"); return decimalFormat.format(kilDis); double demo = result / 1000; return decimalFormat.format(demo); } catch (Exception e) { throw new RuntimeException(); }