TRX 1 rok temu
rodzic
commit
b748fb4836

+ 1 - 1
FullCardClient/src/main/java/com/zhongshu/card/client/model/org/OrganizationAddParam.java

@@ -16,7 +16,7 @@ public class OrganizationAddParam extends SuperParam {
     @Schema(description = "机构名称", required = true)
     private String name;
 
-    @Schema(description = "编码")
+    @Schema(description = "编码、项目ID")
     private String code;
 
     @Schema(description = "统一社会信用代码")

+ 1 - 1
FullCardClient/src/main/java/com/zhongshu/card/client/model/org/OrganizationModel.java

@@ -17,7 +17,7 @@ public class OrganizationModel extends SuperModel {
     @Schema(description = "机构名称")
     private String name;
 
-    @Schema(description = "编码")
+    @Schema(description = "编码、项目ID")
     private String code;
 
     @Schema(description = "统一社会信用代码")

+ 1 - 1
FullCardClient/src/main/java/com/zhongshu/card/client/model/org/OrganizationSimpleModel.java

@@ -16,7 +16,7 @@ public class OrganizationSimpleModel extends SuperModel {
     @Schema(description = "机构名称")
     private String name;
 
-    @Schema(description = "编码")
+    @Schema(description = "编码、项目ID")
     private String code;
 
     @Schema(description = "logo")

+ 14 - 0
FullCardClient/src/main/java/com/zhongshu/card/client/model/org/ProjectUpdateParam.java

@@ -0,0 +1,14 @@
+package com.zhongshu.card.client.model.org;
+
+import lombok.Data;
+
+/**
+ * @author TRX
+ * @date 2024/6/17
+ */
+@Data
+public class ProjectUpdateParam {
+    private String id;
+    private String name;
+    private String remark;
+}

+ 6 - 0
FullCardClient/src/main/java/com/zhongshu/card/client/model/org/UserCountUpdateParam.java

@@ -15,6 +15,12 @@ public class UserCountUpdateParam {
     @Schema(description = "姓名")
     private String name;
 
+    @Schema(description = "用户手机号,手机号码改了,登录名改不改")
+    private String phone;
+
     @Schema(description = "性别")
     private Sex sex;
+
+    @Schema(description = "证件号码")
+    private String cardNumber;
 }

+ 8 - 0
FullCardClient/src/main/java/com/zhongshu/card/client/service/org/OrganizationService.java

@@ -25,6 +25,14 @@ public interface OrganizationService {
      */
     public ResultContent addOrganization(OrganizationAddParam param);
 
+    /**
+     * 编辑项目
+     *
+     * @param param
+     * @return
+     */
+    ResultContent updateProject(ProjectUpdateParam param);
+
     /**
      * 通用编辑机构
      *

+ 5 - 0
FullCardClient/src/main/java/com/zhongshu/card/client/service/school/SchoolUserService.java

@@ -28,13 +28,18 @@ public interface SchoolUserService {
 
     ResultContent addOrUpdateSchoolUser(SchoolUserCountParam param);
 
+    // c端用户注册
     ResultContent register(RegisterUserParam param);
 
     ResultContent<SchoolUserModel> getSchoolUserDetail(OrgUserDetailParam param);
 
     ResultContent<List<CardInfoModel>> getUserOrgAllCard(OrgUserDetailParam param);
 
+    // 得到绑定到机构的卡片列表
     ResultContent<List<CardInfoModel>> getCurrentUserOrgAll();
 
+    // 得到用户所有的卡片列表
+    ResultContent<List<CardInfoModel>> getCurrentUserAllCard();
+
     ResultContent deleteUser(String id);
 }

+ 8 - 0
FullCardServer/src/main/java/com/zhongshu/card/server/core/controller/org/OrganizationController.java

@@ -38,6 +38,14 @@ public class OrganizationController {
         return this.organizationService.addOrganization(param);
     }
 
+    @ResourceAuth(value = "user", type = AuthType.User)
+    @ResourceAuth(value = AuthConstant.SuperAdmin, type = AuthType.Platform)
+    @Operation(summary = "项目-编辑", description = "项目-编辑")
+    @RequestMapping(value = "updateProject", method = {RequestMethod.POST})
+    public ResultContent updateProject(@RequestBody ProjectUpdateParam param) {
+        return this.organizationService.updateProject(param);
+    }
+
     @ResourceAuth(value = "user", type = AuthType.User)
     @ResourceAuth(value = AuthConstant.SuperAdmin, type = AuthType.Platform)
     @Operation(summary = "项目列表-分页查询", description = "项目列表-分页查询")

+ 7 - 0
FullCardServer/src/main/java/com/zhongshu/card/server/core/controller/school/CardController.java

@@ -51,6 +51,13 @@ public class CardController {
         return schoolUserService.getCurrentUserOrgAll();
     }
 
+    @ResourceAuth(value = "user", type = AuthType.User)
+    @Operation(summary = "得到当前用户所有卡片", description = "得到当前用户所有卡片(不区分机构)")
+    @RequestMapping(value = {"getCurrentUserAllCard"}, method = {RequestMethod.GET})
+    public ResultContent<List<CardInfoModel>> getCurrentUserAllCard() {
+        return schoolUserService.getCurrentUserAllCard();
+    }
+
     @ResourceAuth(value = "user", type = AuthType.User)
     @Operation(summary = "得到指定用户在学校的所有卡片", description = "得到指定用户在学校的所有卡片")
     @RequestMapping(value = {"getUserOrgAllCard"}, method = {RequestMethod.POST})

+ 3 - 1
FullCardServer/src/main/java/com/zhongshu/card/server/core/dao/CardInfoDao.java

@@ -23,7 +23,9 @@ public interface CardInfoDao extends MongoDao<CardInfo> {
     CardInfo findTopByCodeAndOidAndUserAccount(String code, String oid, UserAccount userAccount);
 
     // 查询用户所有的卡片
-    List<CardInfo> findTopByUserIdAndOid(String userId, String oid);
+    List<CardInfo> findByUserIdAndOid(String userId, String oid);
+
+    List<CardInfo> findByUserId(String userId);
 
     void deleteByUserIdAndOid(String userId, String oid);
 }

+ 57 - 0
FullCardServer/src/main/java/com/zhongshu/card/server/core/domain/payment/ExpenseFlow.java

@@ -0,0 +1,57 @@
+package com.zhongshu.card.server.core.domain.payment;
+
+import cn.hutool.json.JSONObject;
+import com.zhongshu.card.server.core.domain.base.SuperMain;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import org.checkerframework.common.aliasing.qual.NonLeaked;
+import org.springframework.data.mongodb.core.index.Indexed;
+import org.springframework.data.mongodb.core.mapping.Document;
+
+import java.math.BigDecimal;
+
+/**
+ * 消费流水
+ *
+ * @author TRX
+ * @date 2024/6/17
+ */
+@Data
+@Document
+@AllArgsConstructor
+@NoArgsConstructor
+@NonLeaked
+public class ExpenseFlow extends SuperMain {
+
+    @Schema(description = "用户userId")
+    private String userId;
+
+    @Schema(description = "消费类型,如:餐饮消费")
+    private String payType;
+
+    @Schema(description = "消费订单号")
+    private String orderNo;
+
+    @Schema(description = "支付订单号")
+    private String paymentNo;
+
+    @Schema(description = "消费时间")
+    private String paymentTime;
+
+    @Schema(description = "支付方式")
+    @Indexed
+    private String paymentWay;
+
+    @Schema(description = "消费金额(单位:分)")
+    @Indexed
+    private BigDecimal payAmount;
+
+    @Schema(description = "关联信息")
+    @Indexed
+    private JSONObject goodsInfo;
+
+    @Schema(description = "支付订单状态")
+    private String paymentStatus;
+}

+ 29 - 11
FullCardServer/src/main/java/com/zhongshu/card/server/core/service/org/OrganizationServiceImpl.java

@@ -89,7 +89,7 @@ public class OrganizationServiceImpl extends SuperService implements Organizatio
     OrganizationRelationDao organizationRelationDao;
 
     /**
-     * 添加机构
+     * 添加机构 (只是添加、没得编辑)
      *
      * @param param
      * @return
@@ -163,6 +163,29 @@ public class OrganizationServiceImpl extends SuperService implements Organizatio
         return ResultContent.buildSuccess(organization);
     }
 
+    /**
+     * 编辑项目
+     *
+     * @param param
+     * @return
+     */
+    @Override
+    public ResultContent updateProject(ProjectUpdateParam param) {
+        Assert.hasText(param.getId(), "id不能为空");
+        Assert.hasText(param.getName(), "name不能为空");
+        Organization organization = organizationDao.findTopById(param.getId());
+        if (ObjectUtils.isEmpty(organization)) {
+            return ResultContent.buildFail(String.format(ResultMessage.DATA_NOT_EXIST, param.getId()));
+        }
+        Organization tempOrganization = organizationDao.findTopByName(param.getName());
+        if (ObjectUtils.isNotEmpty(tempOrganization) && !ObjectUtils.equals(organization.getId(), tempOrganization.getId())) {
+            return ResultContent.buildFail(String.format(ResultMessage.NAME_EXIST, param.getName()));
+        }
+        BeanUtils.copyProperties(param, organization);
+        organizationDao.save(organization);
+        return ResultContent.buildSuccess();
+    }
+
     /**
      * 添加学校
      *
@@ -186,8 +209,7 @@ public class OrganizationServiceImpl extends SuperService implements Organizatio
         ResultContent<Organization> resultContent = addOrganization(addParam);
         if (resultContent.isSuccess()) {
             Organization main = resultContent.getContent();
-            OrganizationRelation organizationRelation = organizationRelationDao
-                    .findTopByMainOrganizationAndRelationType(main, OrganizationRelationType.SchoolToProject);
+            OrganizationRelation organizationRelation = organizationRelationDao.findTopByMainOrganizationAndRelationType(main, OrganizationRelationType.SchoolToProject);
             if (ObjectUtils.isEmpty(organizationRelation)) {
                 organizationRelation = new OrganizationRelation();
             }
@@ -244,8 +266,7 @@ public class OrganizationServiceImpl extends SuperService implements Organizatio
         BeanUtils.copyProperties(param, main);
 
         // 找出关联的项目
-        OrganizationRelation organizationRelation = organizationRelationDao
-                .findTopByMainOrganizationAndRelationType(main, OrganizationRelationType.SchoolToProject);
+        OrganizationRelation organizationRelation = organizationRelationDao.findTopByMainOrganizationAndRelationType(main, OrganizationRelationType.SchoolToProject);
         if (ObjectUtils.isEmpty(organizationRelation)) {
             organizationRelation = new OrganizationRelation();
         }
@@ -356,8 +377,7 @@ public class OrganizationServiceImpl extends SuperService implements Organizatio
             if (StringUtils.isNotEmpty(param.getProjectOid())) {
                 // 查询项目已绑定的学校数据
                 Organization organization = organizationDao.findTopByOid(param.getProjectOid());
-                List<OrganizationRelation> list = organizationRelationDao
-                        .findByRelOrganizationAndRelationType(organization, OrganizationRelationType.SchoolToProject);
+                List<OrganizationRelation> list = organizationRelationDao.findByRelOrganizationAndRelationType(organization, OrganizationRelationType.SchoolToProject);
                 if (ObjectUtils.isNotEmpty(list)) {
                     List<String> oids = list.stream().map(it -> {
                         return it.getOid();
@@ -666,8 +686,7 @@ public class OrganizationServiceImpl extends SuperService implements Organizatio
             // 判断不同的类型
             if (entity.getAuthType() == AuthType.School) {
                 // 学校:查询出关联的项目信息
-                OrganizationRelation organization = organizationRelationDao
-                        .findTopByMainOrganizationAndRelationType(entity, OrganizationRelationType.SchoolToProject);
+                OrganizationRelation organization = organizationRelationDao.findTopByMainOrganizationAndRelationType(entity, OrganizationRelationType.SchoolToProject);
                 if (ObjectUtils.isNotEmpty(organization)) {
                     model.setProjectModel(toSimpleModel(organization.getRelOrganization()));
                 }
@@ -700,8 +719,7 @@ public class OrganizationServiceImpl extends SuperService implements Organizatio
         if (ObjectUtils.isNotEmpty(entity)) {
             BeanUtils.copyProperties(entity, model);
             // 统计学校数量
-            Long number = organizationRelationDao
-                    .countByRelOrganizationAndRelationType(entity, OrganizationRelationType.SchoolToProject);
+            Long number = organizationRelationDao.countByRelOrganizationAndRelationType(entity, OrganizationRelationType.SchoolToProject);
             model.setSchoolNumber(number);
         }
         return model;

+ 6 - 1
FullCardServer/src/main/java/com/zhongshu/card/server/core/service/school/CardInfoServiceImpl.java

@@ -95,7 +95,12 @@ public class CardInfoServiceImpl extends SuperService implements CardInfoService
     @Override
     public List<CardInfoModel> getUserOrgAllCard(String userId, String oid) {
         List<CardInfoModel> models = new ArrayList<>();
-        List<CardInfo> list = cardInfoDao.findTopByUserIdAndOid(userId, oid);
+        List<CardInfo> list = new ArrayList<>();
+        if (StringUtils.isNotEmpty(oid)) {
+            list = cardInfoDao.findByUserIdAndOid(userId, oid);
+        } else {
+            list = cardInfoDao.findByUserId(userId);
+        }
         if (ObjectUtils.isNotEmpty(list)) {
             models = list.stream().map(this::toModel).collect(Collectors.toList());
         }

+ 13 - 0
FullCardServer/src/main/java/com/zhongshu/card/server/core/service/school/SchoolUserServiceImpl.java

@@ -350,6 +350,19 @@ public class SchoolUserServiceImpl extends SuperService implements SchoolUserSer
         return ResultContent.buildSuccess(cardInfos);
     }
 
+    /**
+     * 得到当前用户所有的卡片 (不区分学校)
+     *
+     * @return
+     */
+    @Override
+    public ResultContent<List<CardInfoModel>> getCurrentUserAllCard() {
+        String userId = getCurrentUserId();
+        Assert.hasText(userId, "userId不能为空");
+        List<CardInfoModel> cardInfos = cardInfoService.getUserOrgAllCard(userId, null);
+        return ResultContent.buildSuccess(cardInfos);
+    }
+
     //-------------------------------卡片信息维护 end---------------------
 
     /**